JDBC driver writes binary data ONLY as Large Object
От | Bill |
---|---|
Тема | JDBC driver writes binary data ONLY as Large Object |
Дата | |
Msg-id | 398726DF.D52AACA7@cplane.com обсуждение исходный текст |
Список | 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 по дате отправления: