提交 0671b65b 编写于 作者: B Barry Lind

Applied patch from Kim Ho at redhat to improve boolean and bit handling

in the jdbc driver

 Modified Files:
 	jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java
 	jdbc/org/postgresql/jdbc3/AbstractJdbc3Statement.java
上级 ce90c0f5
...@@ -26,7 +26,7 @@ import java.sql.Timestamp; ...@@ -26,7 +26,7 @@ import java.sql.Timestamp;
import java.sql.Types; import java.sql.Types;
import java.util.Vector; import java.util.Vector;
/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Statement.java,v 1.36 2003/09/13 04:02:15 barry Exp $ /* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Statement.java,v 1.37 2003/09/17 05:07:37 barry Exp $
* This class defines methods of the jdbc1 specification. This class is * This class defines methods of the jdbc1 specification. This class is
* extended by org.postgresql.jdbc2.AbstractJdbc2Statement which adds the jdbc2 * extended by org.postgresql.jdbc2.AbstractJdbc2Statement which adds the jdbc2
* methods. The real Statement class (for jdbc1) is org.postgresql.jdbc1.Jdbc1Statement * methods. The real Statement class (for jdbc1) is org.postgresql.jdbc1.Jdbc1Statement
...@@ -917,7 +917,7 @@ public abstract class AbstractJdbc1Statement implements BaseStatement ...@@ -917,7 +917,7 @@ public abstract class AbstractJdbc1Statement implements BaseStatement
*/ */
public void setBoolean(int parameterIndex, boolean x) throws SQLException public void setBoolean(int parameterIndex, boolean x) throws SQLException
{ {
bind(parameterIndex, x ? "'t'" : "'f'", PG_BOOLEAN); bind(parameterIndex, x ? "'1'" : "'0'", PG_BOOLEAN);
} }
/* /*
...@@ -1551,11 +1551,15 @@ public abstract class AbstractJdbc1Statement implements BaseStatement ...@@ -1551,11 +1551,15 @@ public abstract class AbstractJdbc1Statement implements BaseStatement
case Types.BIT: case Types.BIT:
if (x instanceof Boolean) if (x instanceof Boolean)
{ {
bind(parameterIndex, ((Boolean)x).booleanValue() ? "TRUE" : "FALSE", PG_TEXT); bind(parameterIndex, ((Boolean)x).booleanValue() ? "'1'" : "'0'", PG_BOOLEAN);
}
else if (x instanceof String)
{
bind(parameterIndex, Boolean.valueOf(x.toString()).booleanValue() ? "'1'" : "'0'", PG_BOOLEAN);
} }
else if (x instanceof Number) else if (x instanceof Number)
{ {
bind(parameterIndex, ((Number)x).intValue()==1 ? "TRUE" : "FALSE", PG_TEXT); bind(parameterIndex, ((Number)x).intValue()==1 ? "'1'" : "'0'", PG_BOOLEAN);
} }
else else
{ {
......
...@@ -5,7 +5,7 @@ import java.math.BigDecimal; ...@@ -5,7 +5,7 @@ import java.math.BigDecimal;
import java.sql.*; import java.sql.*;
import java.util.Calendar; import java.util.Calendar;
/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc3/Attic/AbstractJdbc3Statement.java,v 1.2 2002/09/06 21:23:06 momjian Exp $ /* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc3/Attic/AbstractJdbc3Statement.java,v 1.3 2003/09/17 05:07:38 barry Exp $
* This class defines methods of the jdbc3 specification. This class extends * This class defines methods of the jdbc3 specification. This class extends
* org.postgresql.jdbc2.AbstractJdbc2Statement which provides the jdbc2 * org.postgresql.jdbc2.AbstractJdbc2Statement which provides the jdbc2
* methods. The real Statement class (for jdbc2) is org.postgresql.jdbc3.Jdbc3Statement * methods. The real Statement class (for jdbc2) is org.postgresql.jdbc3.Jdbc3Statement
...@@ -1359,5 +1359,16 @@ public abstract class AbstractJdbc3Statement extends org.postgresql.jdbc2.Abstra ...@@ -1359,5 +1359,16 @@ public abstract class AbstractJdbc3Statement extends org.postgresql.jdbc2.Abstra
{ {
throw org.postgresql.Driver.notImplemented(); throw org.postgresql.Driver.notImplemented();
} }
public void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException
{
switch (targetSqlType)
{
case Types.BOOLEAN:
super.setObject(parameterIndex, x, Types.BIT, scale);
default:
super.setObject(parameterIndex, x, targetSqlType, scale);
}
}
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册