LINUX.ORG.RU

Ошибка при запросе через unixODBC к MS SQL Server 2005


0

1

Всем привет!

Ситуация такая: есть база под MS SQL Server 2005, коннекчусь к ней через isql без проблем (unixODBC+FreeTDS настроил нормально, вроде) и при любом запросе выдаётся такая ошибка:

[][unixODBC][FreeTDS][SQL Server]The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 4 (""): Data type 0x38 is unknown.

[ISQL]ERROR: Could not SQLPrepare

В MSовской knowledge base сказано, что это ошибка в JDBC SQL Server'ов 2000 и 2005. Как с ней справиться, подскажите, пожалуйста! Ну очень срочно нужно.

Заранее благодарен.

★★★★

Ответ на: комментарий от anonymous4

Да, с tsql работает отлично --- и даже кодировки текстовых данных ОК.

Ay49Mihas ★★★★
() автор топика

I'm a дурень. Пробовал с freetds 0.64, когда есть уже 0.82, и там этот косяк исправлен. В общем, долго мучался над spec-файлом для OpenSuSE, в итоге собрал пакеты, установил их и всё заработало.

Спасибо за участие! :)

Ay49Mihas ★★★★
() автор топика

О, продолжение эпопеи. При запросах к этому самому SQL Server'у 2005 через Qt4, если результат¸ получаемый через QQuery::value(), является строкой, то пишет

qGetStringData: Error while fetching data (-1) ( "[FreeTDS][SQL Server]Program type out of range" )

В поиске встречал всего пару раз, ничего нормального про это не пишут.

Ay49Mihas ★★★★
() автор топика
Ответ на: комментарий от anonymous4

Не помогает. Если указываю присутствующие в списке iconv кодировки, то такая же ошибка.

Ay49Mihas ★★★★
() автор топика
Ответ на: комментарий от Ay49Mihas

В общем, помогло только перекомпилирование libqt4-sql-unixODBC с макросом

#define Q_ODBC_VERSION_2

в qt4/src/sql/drivers/odbc/qsql_odbc.h

Ay49Mihas ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.