JDBC ODBC和4D数据库:读取行时,不会发送列的第一个空格字符

时间:2014-03-04 15:22:20

标签: java jdbc odbc jdbc-odbc 4d-database

我在Windows上使用远程4D v11数据库和ODBC 4D驱动程序来访问和读取数据。 问题是关于表的某些行:这些行具有以空格字符开头的列。这是打算。

我的java应用程序必须使用第一个空格字符检索这些列。但它不起作用。

ODBC 4D驱动程序工作正常。在Excel中使用Microsoft Query进行测试,阅读 表中的列有第一个空格字符。

在我的java程序中,我使用JDBC ODBC驱动程序(jdk 1.7.0_51)。 open(),Statement,execute()和ResultSet指令或类是标准JDBC。 不幸的是,第一个空格字符在阅读时从未被检索过。

该列被视为CLOB:

int myColumnWithFirstSpace = 5;
ResultSetMetaData rsmd = rs.getMetaData();
String type = rsmd.getColumnTypeName(myColumnWithFirstSpace );
System.out.println(type); // print CLOB

唯一支持的类是String:

String text= rs.getString(myColumnWithFirstSpace);
// other types return "Operation not yet supported"
System.out.println(text); // print the content of the column

不幸的是,印刷文本中没有第一个空格字符。 哪里可以出错? 谢谢!

1 个答案:

答案 0 :(得分:1)

我能够使用JDBC-ODBC Bridge和Microsoft SQL Server ODBC驱动程序重新创建您的问题。

  • 使用SQL Server ODBC驱动程序从C#和VBA检索带有前导空格的nvarchar值时,将保留前导空格。
  • 通过SQL Server JDBC驱动程序从Java中检索相同的值也保留了前导空格。
  • 但是,通过JDBC-ODBC Bridge从Java中检索该值会剥离前导空格。

因此,看起来JDBC-ODBC Bridge不适合您的特定项目,您可能需要找到4D的JDBC驱动程序。您可能想要开始搜索here