Обсуждение: Can't get JDBC BLOB online manual example working

Поиск
Список
Период
Сортировка

Can't get JDBC BLOB online manual example working

От
nvadekar@netscape.net (Neal Vadekar)
Дата:
In the online manual is gives the following eg. on how to access a blob uisng 
jdbc:

PreparedStatement ps = con.prepareStatement("select oid from images where 
name=keyfield");
ps.setString(1,"myimage.gif");
ResultSet rs = ps.executeQuery();
if(rs!=null) {   while(rs.next()) {       InputStream is = rs.getBinaryInputStream(1);       // use the stream in some
wayhere       is.close();   }   rs.close();
 
}
ps.close();   
I have tried this to no avail.  The getBinaryInputStream method is not 
available in the packages that are included in the JSP page.  I don't know 
why, I know the select statement is working, but it only works when I have 
the line with getBinaryInputStream commented out.   How do I get access to 
that method?  I am using jdbc7.0.1-2.jar.  I thought that by using the jdbc 
driver, that method would be available to me???

I tried getBinaryStream, instead of getBinaryInputStream, but then I get the 
following error:

javax.servlet.ServletException: FastPath call returned ERROR:  Relation 0 
does not exist

I then changed everthing to a BLOB object instead of InputStream as follows:

byte[] blob1 = rs1.getBytes("photoblob"); \\photoblob is the name of the field

but I still keep getting the:

javax.servlet.ServletException: FastPath call returned ERROR:  Relation 0 
does not exist

error.  How do I get past this error, it is killing me!  What does Relation 0 
does not exist mean?  What is the FastPath error.  Every object and method I 
try to use to access the BLOB results in that same error.  I am using RedHat 
7.0, Postgresql 7.02 and Tomcat 3.2.1.

HELP, and Thanks in advance.

Neal Vadekar


__________________________________________________________________
Get your own FREE, personal Netscape Webmail account today at 
http://webmail.netscape.com/


Re: Can't get JDBC BLOB online manual example working

От
Greg Speegle
Дата:
You have to use getBytes() instead of getBinaryInputStream,
and you have to put everything inside of a transaction. Not
well documented aspects of the PostgreSQL JDBC.

Good luck,

Greg Speegle

1/6/01 5:49:49 PM, nvadekar@netscape.net (Neal Vadekar) wrote:

>In the online manual is gives the following eg. on how to access a blob uisng 
>jdbc:
>
>PreparedStatement ps = con.prepareStatement("select oid from images where 
>name=keyfield");
>ps.setString(1,"myimage.gif");
>ResultSet rs = ps.executeQuery();
>if(rs!=null) {
>    while(rs.next()) {
>        InputStream is = rs.getBinaryInputStream(1);
>        // use the stream in some way here
>        is.close();
>    }
>    rs.close();
>}
>ps.close();
>    
>I have tried this to no avail.  The getBinaryInputStream method is not 
>available in the packages that are included in the JSP page.  I don't know 
>why, I know the select statement is working, but it only works when I have 
>the line with getBinaryInputStream commented out.   How do I get access to 
>that method?  I am using jdbc7.0.1-2.jar.  I thought that by using the jdbc 
>driver, that method would be available to me???
>
>I tried getBinaryStream, instead of getBinaryInputStream, but then I get the 
>following error:
>
>javax.servlet.ServletException: FastPath call returned ERROR:  Relation 0 
>does not exist
>
>I then changed everthing to a BLOB object instead of InputStream as follows:
>
>byte[] blob1 = rs1.getBytes("photoblob"); \\photoblob is the name of the field
>
>but I still keep getting the:
>
>javax.servlet.ServletException: FastPath call returned ERROR:  Relation 0 
>does not exist
>
>error.  How do I get past this error, it is killing me!  What does Relation 0 
>does not exist mean?  What is the FastPath error.  Every object and method I 
>try to use to access the BLOB results in that same error.  I am using RedHat 
>7.0, Postgresql 7.02 and Tomcat 3.2.1.
>
>HELP, and Thanks in advance.
>
>Neal Vadekar
>
>
>__________________________________________________________________
>Get your own FREE, personal Netscape Webmail account today at 
>http://webmail.netscape.com/
>