[Microsoft] [ODBC驱动程序管理器]无效的字符串或缓冲区长度ON WINDOWS SERVER 2008

时间:2011-01-29 18:56:25

标签: odbc windows-server-2008

通过在tomcat中手动部署,我的java webapp在我的Windows XP 64bit系统DSN中工作正常。

当我在Tomcat上运行我的webapp windows server 2008 64bit 时。我使用的是系统DSN,因为用户DSN没有检测到数据源。在这种情况下,它给我一个错误如下:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid string or buffer length 

到目前为止,我已尝试过:

  1. 我比较了SQL Server和DSN注册表值,它们是相同的。

  2. 我部署在其他XP机器上,它运行正常,但不适用于Windows Server 2008

  3. 提前谢谢。

1 个答案:

答案 0 :(得分:0)

当尝试从部署到Jboss 4.x的应用程序运行对系统ODBC DSN(MS Access .mdb文件)的查询时,我得到相同的错误:“SQL状态[S1090];错误代码[0]; [Microsoft] [ODBC驱动程序管理器] Windows Server R2中的“无效的字符串或缓冲区长度”。 我在2台不同的Windows Server R2计算机上重现了同样的错误。在Windows Server Standard(我猜是R1)和Windows 7 Professional x64上,问题不可重现。 此外,在尝试直接连接(从独立应用程序)时,在相同的Windows Server R2上,我没有遇到此问题。 如果应用程序无法连接/检测数据源,则会收到错误消息,指出没有此类DSN名称或未找到该名称。 尝试将空查询发送到ODBC数据源(已注册的数据源名称 - DSN)时,将引发相同的错误消息。所以我想ODBC获取一个空查询,它试图对DS执行,结果是:无效的字符串或缓冲区长度 因为我可以读取注册为具有给定DSN的ODBC DS的.mdb文件,并且在从独立应用程序查询时不会出现此错误,我将创建一个独立应用程序,通过以下方式读取.mdb文件ODBC并将其内容写入.csv文件,Jboss应用程序将读取该文件。 如果有人找到更好的解决方案,请告诉我。