Проблема при вставке брокера сообщений WMB в таблицу базы данных Sybase

В настоящее время я сталкиваюсь с проблемой при вставке данных в базу данных Sybase 15.7 с потоком кода WMB. В настоящее время я использую WMB7 Broker, и я написал код в нашем потоке сообщений, который пытается вставить данные в таблицу напрямую, а не с помощью процедуры хранения. Типы данных, используемые в таблице базы данных, — «int» и «Image». Но операция вставки все равно не завершается.

Принимая во внимание, что тот же код потока сообщений вставляет данные в таблицу базы данных, которая находится в Sybase 12.5.

Может ли это быть проблемой совместимости драйверов ODBC, присутствующих в WMB7? Любое направление было бы большим подспорьем


person WENzER    schedule 16.07.2014    source источник


Ответы (2)


Это определенно может быть проблема с драйвером, в SOE Sybase 15.7 указан как поддерживаемый только с версии 7.0.0.6:

http://publib.boulder.ibm.com/infocenter/prodguid/v1r0/clarity-reports/report/html/softwareReqsForProduct?deliverableId=1106652668319&osPlatform=AIX#sw-Databases

Вы работаете на этой версии?

person Dave    schedule 16.07.2014
comment
Да, я использую Sybase 15.7. - person WENzER; 16.07.2014
comment
Есть ли что-то с проблемой буфера данных? - person WENzER; 17.07.2014
comment
Мой вопрос больше касался версий брокера, поскольку разные пакеты исправлений содержат разные обновления драйверов DataDirect. Вы используете 7.0.0.6? - person Dave; 17.07.2014
comment
Я использую версию брокера 7006. - person WENzER; 17.07.2014
comment
Какие симптомы вы видите ... вы получаете исключение, и поток откатывается назад, зависает ли вызов или кажется, что вызов завершен, но данные отсутствуют в базе данных? - person Dave; 17.07.2014
comment
Спасибо, Дэйв, за помощь, теперь проблема решена. На самом деле это был тип данных изображения, который вызывал проблемы при обмене данными между WMB и Sybase. Я изменил тип данных «varbinary» в БД, и он начал работать по порядку. - person WENzER; 18.07.2014
comment
мое решение, похоже, не работает для большого куска данных. Я создал один proc магазина для вставки данных для типа данных изображения, но это дало мне ошибку. 22003 / 0 / [IBM] [драйвер протокола ODBC Sybase Wire] Параметру SQL_C_BINARY было передано неправильное количество байтов. - person WENzER; 22.08.2014
comment
Что касается POC, когда я пытался вставить данные из кода C++, он работал нормально. Так что я чувствую эту проблему совместимости с IBM/ODBC. - person WENzER; 22.08.2014

На самом деле для решения этой проблемы мы изменили тип данных с изображения на varbinary в таблице базы данных. И все заработало по порядку

person WENzER    schedule 18.07.2014
comment
На следующей странице перечислены сопоставления типов данных: www-01.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/, поэтому IMAGE определенно можно использовать. - person Dave; 22.12.2014