[Microsoft] [Диспетчер драйверов ODBC] Неверная длина строки или буфера в WINDOWS SERVER 2008 - PullRequest
1 голос
/ 29 января 2011

Мой java webapp работает нормально в моем Windows XP 64bit с System DSN, путем развертывания вручную в tomcat.

Когда я запускаю свое веб-приложение в Tomcat на 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

Заранее спасибо.

1 Ответ

0 голосов
/ 09 февраля 2011

При попытке выполнить запрос к DSN системы ODBC (файл MS Access .mdb) из приложения, развернутого в Jboss 4.x, я получаю ту же ошибку: «Состояние 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, и в результате получается: Неверная длина строки или буфера.
Так как я могу прочитать файл .mdb, зарегистрированный как ODBC DS с данным DSN, и не получаю эту ошибку при запросе его из автономного приложения, я собираюсь создать отдельное приложение, которое будет читать файл .mdb через ODBC и запишите его содержимое в файл .csv, который будут читать приложения Jboss. Если кто-нибудь найдет лучшее решение, пожалуйста, дайте мне знать.

...