JDBC driver writes binary data ONLY as Large Object

From: Bill <bouma(at)cplane(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: JDBC driver writes binary data ONLY as Large Object
Date: 2000-08-01 19:37:03
Message-ID: 398726DF.D52AACA7@cplane.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)cplane(dot)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 (depending on 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 this column.
*
* @param parameterIndex the first parameter is 1...
* @param x the parameter value
* @exception SQLException if 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);
}

Browse pgsql-interfaces by date

  From Date Subject
Next Message Kovacs Zoltan Sandor 2000-08-01 19:51:44 Re: Function sequence error with ODBCExpress
Previous Message Ken J. Wright 2000-08-01 17:57:16 Re: Function sequence error with ODBCExpress