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

Java JDBC ODBC和4D数据库:读取行时,不发送列的第一个空格字符,java,jdbc,odbc,jdbc-odbc,4d-database,Java,Jdbc,Odbc,Jdbc Odbc,4d Database,我在Windows上使用远程4D v11数据库和ODBC 4D驱动程序来访问和读取数据。 问题是关于表中的某些行:这些行的列以空格字符开头。这是有意的 我的java应用程序必须用第一个空格字符检索这些列。但它不起作用 ODBC 4D驱动程序工作正常。在Excel中使用Microsoft Query进行测试,读取 表列具有第一个空格字符 在我的java程序中,我使用JDBCODBC驱动程序(JDK1.7.0_51)。 open()、语句、execute()和ResultSet指令或类是标准的JDB

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

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

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

在我的java程序中,我使用JDBCODBC驱动程序(JDK1.7.0_51)。 open()、语句、execute()和ResultSet指令或类是标准的JDBC。 不幸的是,读取时从未检索到第一个空格字符

该列被视为CLOB:

int myColumnWithFirstSpace = 5;
ResultSetMetaData rsmd = rs.getMetaData();
String type = rsmd.getColumnTypeName(myColumnWithFirstSpace );
System.out.println(type); // print CLOB
支持的唯一类是字符串:

String text= rs.getString(myColumnWithFirstSpace);
// other types return "Operation not yet supported"
System.out.println(text); // print the content of the column
不幸的是,打印文本中没有第一个空格字符。 错误在哪里?
谢谢

我可以使用JDBC-ODBC桥和Microsoft SQL Server ODBC驱动程序重新创建您的问题

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

因此,JDBC-ODBC桥似乎不适合您的特定项目,您可能需要为4D找到JDBC驱动程序。您可能想开始搜索。

答案很好。4D链接已断开。我将尝试旧的jdbc4d解决方案。仅供参考,旧的jdbc4d驱动程序不适用于我的4D v11项目。我改变了这个过程:写入行中编码的空格(并且需要在Java应用程序中对它们进行解码)。不是很聪明,但它能工作。