2013-06-15 2 views
0

У меня в Microsoft SQL Server 2008 R2 SP1 есть Connect-Server с ODBC для базы данных MySQL. ODBC-драйвер: MySQL ODBC 5.2a на Microsoft Windows Server 2008 R2 64-разрядныйОбновление MySQL от MS SQL Server 2008

Все запросы выполняются надлежащим образом. Также вставки и обновления.

Проблема заключается в обновлении BLOB-данных. (изображения, ...)

Первоначально он работал, но когда данных больше нет. Затем я ограничил заявление об обновлении.

Теперь он даже не работает с одним изображением.

В таблице 2540 наборов данных. 142 наборов данных имеют BLOB-поле = NULL

MySQL ТАБЛИЦА:

-ID int not null Primary Key 
-ARTIKEL int 
-BILD blob 

MySQL ODBC

http://vvcap.net/db/uXBos_1v0Sm4qk-lA6SD.png

Параметр MSDAQL enter image description here

Параметр Verbindungsserver (в MSSQL) enter image description here

Это исть запрос SQL:

update shop...EXTERN_BILDER 
set BILD = (select b.BILD from INTERN_BILDER b where b.ID = EXTERN_BILDER.ID) 
where (BILD is null) AND (ID in (select ID from _temp_ID)) 

таблица _temp_ID имеет идентификаторы, чтобы обновить. Я могу настроить, сколько.

Это ошибка из MSDASQL для подключенного сервера shop (в переводе с немецкого, как лучше, как я мог):

Строки должны быть обновлены не были найдены. Некоторые значения были изменены с момента последнего чтения.

Сообщение 7343, уровень 16, состояние 4, строка 2 Поставщик OLE DB-провайдер 'MSDASQL' для сервера 'магазина' соединение не может выполнить UPDATE для [магазин] ... [extern_pictures] стол. Для набора строк использовался полный параллелизм, и значение строки было изменено после того, как соответствующая строка была последней считанной или синхронизированной.

ответ

0

Кажется, вы пытаетесь обновить строку в записи, которая изменилась во время запроса строк. Попробуйте изменить соединение ODBC.

Lake =>http://dev.mysql.com/doc/refman/5.5/en/connector-odbc-errors.html

Write Conflicts or Row Location Errors 

How do I handle Write Conflicts or Row Location errors? 

If you see the following errors, select the Return Matching Rows option in the DSN configuration dialog, or specify OPTION=2, as the connection parameter: 

Write Conflict. Another user has changed your data. 

Row cannot be located for updating. Some values may have been changed 
since it was last read. 

Немецкий: Привет, кажется, вы хотите, чтобы обновить записи, которые были изменены в то же время. Вам нужно установить соединение ODBC соответственно, что вы все равно можете запустить UPDATE. Посмотрите на ссылку, как установить соединение ODBC.

+0

Да, это работает. Большое вам спасибо. Я сделал следующие настройки: http://vvcap.net/db/Pt0n-DK1k8H8InSqJoL1.png –

0

У меня нет знания немецкого языка, но если это ConcurrencyViolation проблемы, то я понимаю, что свойство ConflictOptionCommandObject «s может быть установлено в ConflictOption.OverwriteChanges, который будет обновлять базу данных или не считает, что DataSet в база данных была обновлена ​​тем временем.

Приносим извинения, если я не правильно истолковал ваш вопрос.

Смежные вопросы