Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
Rajoe
Member

Откуда:
Сообщений: 21
Работают две базы, одна под MS SQL Server 2008 R2 Express Edition, другая под Sybase ASE 12.5. Есть необходимость при изменении данных в MS SQL делать соответствующие изменения в Sybase. Настроил в MS SQL связанный сервер, запросы select данных Sybase из MS SQL выполняются нормально, а вот update и insert, а также запуск хранимых процедур - нет. При этом delete выпоняется, как ни в чём не бывало. Чего не хватает?
17 авг 11, 20:55    [11135970]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
Rajoe
Чего не хватает?
Наверняка ошибка какая нибуть?
17 авг 11, 21:01    [11136004]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
komrad
Member

Откуда:
Сообщений: 5736
Rajoe
Работают две базы, одна под MS SQL Server 2008 R2 Express Edition, другая под Sybase ASE 12.5. Есть необходимость при изменении данных в MS SQL делать соответствующие изменения в Sybase. Настроил в MS SQL связанный сервер, запросы select данных Sybase из MS SQL выполняются нормально, а вот update и insert, а также запуск хранимых процедур - нет. При этом delete выпоняется, как ни в чём не бывало. Чего не хватает?


права логина который "зашит" в линкед-сервер?

про процедуры - проверьте RPC сall в настройках линкед-сервера
17 авг 11, 23:00    [11136458]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
Rajoe
Member

Откуда:
Сообщений: 21
Для простоты соединение с Sybase выполняется с логином и паролем sa. Оба параметра RPC выставлены в True.

select * from TEST.tochka.dbo.EVENTS_IN;
и
delete from TEST.tochka.dbo.EVENTS_IN;

выполняются без проблем и с нужным результатом. А вот

insert into TEST.tochka.dbo.EVENTS_IN (QUEUE_ID, SQL_TEXT) values (1, ' ');
или
update TEST.tochka.dbo.EVENTS_IN set SQL_TEXT = ' ';

приводят к ошибкам с сообщениями
Поставщик OLE DB "MSDASQL" для связанного сервера "TEST" вернул сообщение "Неопознанная ошибка".
Поставщик OLE DB "MSDASQL" для связанного сервера "TEST" вернул сообщение "Транзакция не может иметь несколько наборов записей с данным типом курсора. Измените тип курсора, завершите транзакцию или закройте один из наборов записей.".
Сообщение 7343, уровень 16, состояние 2, строка 1
Поставщик OLE DB "MSDASQL" для связанного сервера "TEST" не может INSERT INTO таблицу "[TEST].[tochka].[dbo].[EVENTS_IN]".

, а попытка вызова процедуры
exec TEST.tochka.dbo.evIncKey 'CUSTOMERS';

приводит к
Поставщик OLE DB "MSDASQL" для связанного сервера "TEST" вернул сообщение "[DataDirect][ODBC Sybase Wire Protocol driver]No return status or output parameters will be returned from this stored procedure unless you use only parameter markers to pass parameter values.".
Поставщик OLE DB "MSDASQL" для связанного сервера "TEST" вернул сообщение "[DataDirect][ODBC Sybase Wire Protocol driver]Driver's SQLSetConnectAttr failed.".
Поставщик OLE DB "MSDASQL" для связанного сервера "TEST" вернул сообщение "[DataDirect][ODBC Sybase Wire Protocol driver]Optional feature not implemented.".
Сообщение 7212, уровень 17, состояние 1, строка 1
Не удалось выполнить процедуру "evIncKey" на удаленном сервере "TEST".

На таблице TEST.tochka.dbo.EVENTS_IN нет ни триггеров, ни ограничений, ни индексов - вообще ничего.
18 авг 11, 09:31    [11137167]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
komrad
Member

Откуда:
Сообщений: 5736
Rajoe,

можно попробовать с 15-ми дровами (Sybase ASE 15)...
18 авг 11, 09:36    [11137196]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
Rajoe
Member

Откуда:
Сообщений: 21
Спасибо, komrad, это бы, скорее всего, помогло, но вариант с другой версией, к сожалению, исключён. Версия 12.5 купленная и никто на её полную или частичную замену не пойдёт.
18 авг 11, 10:01    [11137371]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
komrad
Member

Откуда:
Сообщений: 5736
Rajoe
Спасибо, komrad, это бы, скорее всего, помогло, но вариант с другой версией, к сожалению, исключён. Версия 12.5 купленная и никто на её полную или частичную замену не пойдёт.


ну проверить-то можно ?
поставить PC Client от 15-ки и проверить...
18 авг 11, 10:16    [11137477]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
Rajoe
Member

Откуда:
Сообщений: 21
komrad
ну проверить-то можно ?
поставить PC Client от 15-ки и проверить...


:) Это как-нибудь в качестве исследования, когда время будет. Сейчас никак.
18 авг 11, 10:25    [11137536]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
komrad
Member

Откуда:
Сообщений: 5736
Rajoe
komrad
ну проверить-то можно ?
поставить PC Client от 15-ки и проверить...


:) Это как-нибудь в качестве исследования, когда время будет. Сейчас никак.


ну хорошо

по процедуре - попробовать дернуть процу без параметров, sp_who например

немного инфы
18 авг 11, 10:35    [11137605]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
Rajoe
Member

Откуда:
Сообщений: 21
Создал в БД Sybase процедуру evNull без параметров и не возвращающей значений. Вызов
exec TEST.tochka.dbo.evNull;
привёл к
Поставщик OLE DB "MSDASQL" для связанного сервера "TEST" вернул сообщение "[DataDirect][ODBC Sybase Wire Protocol driver][SQL Server]Incorrect syntax near '?'.".
Сообщение 7212, уровень 17, состояние 1, строка 1
Не удалось выполнить процедуру "evNull" на удаленном сервере "TEST".
18 авг 11, 11:43    [11138370]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
Glory
Member

Откуда:
Сообщений: 104751
Rajoe
Incorrect syntax near '?'.".

А какие команды передаются Sybase то ?
18 авг 11, 11:49    [11138428]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
Rajoe
Member

Откуда:
Сообщений: 21
Да это ничего не передаётся. Так выглядит маркер параметра в ODBC. В данном случае, видимо, ODBC предполагает возвращаемое значение и ставит для него маркер. Точно не знаю.
18 авг 11, 13:10    [11139194]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
Rajoe
Member

Откуда:
Сообщений: 21
Рабочего решения так и не нашлось, пришлось воспользоваться обходным. Написал CLR-сборку с функцией, которая соединяется с Sybase и выполняет требуемое. Некрасиво, конечно, но работает.
Всё же, если кто знает нормальное решение, отпишитесь, пожалуйста.
18 авг 11, 14:20    [11139741]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
komrad
Member

Откуда:
Сообщений: 5736
Rajoe
Рабочего решения так и не нашлось, пришлось воспользоваться обходным. Написал CLR-сборку с функцией, которая соединяется с Sybase и выполняет требуемое. Некрасиво, конечно, но работает.
Всё же, если кто знает нормальное решение, отпишитесь, пожалуйста.


а так сработает ?


exec ('update tochka.dbo.EVENTS_IN set SQL_TEXT = '' ''') at TEST
18 авг 11, 15:22    [11140252]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных из MS SQL 2008 в Sybase ASE 12.5  [new]
Rajoe
Member

Откуда:
Сообщений: 21
Сработало, спасибо!
24 авг 11, 13:15    [11170772]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить