JDBC driver writes binary data ONLY as Large Object - Mailing list pgsql-interfaces

From Bill
Subject JDBC driver writes binary data ONLY as Large Object
Date
Msg-id 398726DF.D52AACA7@cplane.com
Whole thread Raw
List pgsql-interfaces
The problem is that PreparedStatement.setBytes() only writes Large
Objects.  It should do something like ResultSet.getBytes(), which
checks the column meta-data to see if the column holds an OID or
not, then do the right thing based on that.

Bill <bouma@cplane.com>

-------------------------------------------------

.../postgresql-7.0.2/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java

/**  * Set a parameter to a Java array of bytes.  The driver converts this  * to a SQL VARBINARY or LONGVARBINARY
(dependingon the argument's  * size relative to the driver's limits on VARBINARYs) when it sends  * it to the database.
*  * <p>Implementation note:  * <br>With org.postgresql, this creates a large object, and stores the  * objects oid in
thiscolumn.  *  * @param parameterIndex the first parameter is 1...  * @param x the parameter value  * @exception
SQLExceptionif a database access error occurs  */ public void setBytes(int parameterIndex, byte x[]) throws
SQLException{   LargeObjectManager lom = connection.getLargeObjectAPI();   int oid = lom.create();   LargeObject lob =
lom.open(oid);  lob.write(x);   lob.close();   setInt(parameterIndex,oid); }
 



pgsql-interfaces by date:

Previous
From: Kovacs Zoltan Sandor
Date:
Subject: Re: Function sequence error with ODBCExpress
Next
From: Bill
Date:
Subject: ODBC interface unable to READ Large Object data