Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка обновления прилинкованой таблицы / 8 сообщений из 8, страница 1 из 1
18.06.2020, 18:46
    #39970621
siniypank
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка обновления прилинкованой таблицы
Добрый день.
Прошу Вас помочь в решении задачи.
На сервере MS SQL прилинкована таблица из MySQL ХХХХ. При выполнении обновления строк (не на всех) выдает ошибку:
Код: html
1.
2.
3.
OLE DB provider "MSDASQL" for linked server "ХХХХ" returned message "Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения.".
Сообщение 7343, уровень 16, состояние 4, строка 3
The OLE DB provider "MSDASQL" for linked server "ХХХХ" could not UPDATE table "[MSDASQL]". The rowset was using optimistic concurrency and the value of a column has been changed after the containing row was last fetched or resynchronized.



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
BEGIN
DECLARE
@ART_ID int,
@PRICE float,
@QNT_SITE float
SET @ART_ID=699
SELECT @PRICE=LS.PRICE, @QNT_SITE=LS.QNT_SITE FROM LST_SITE LS WHERE LS.ART_ID=@ART_ID
UPDATE OPENQUERY(ХХХХ, 'SELECT * FROM GOODS')
SET PRICE=@PRICE, QNT_SITE=@QNT_SITE
WHERE ART_ID=@ART_ID
END
GO



Меняю в таблице MySQL значение с PRICE=196.8 на PRICE=196.7 обновление без ошибок.
Есть и другие строки которые не обновляются, но большинство ок.
Не могу понять в чем причина
...
Рейтинг: 0 / 0
18.06.2020, 19:27
    #39970628
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка обновления прилинкованой таблицы
siniypank,

это вам на MySQL ибо MSSQL свое дело сделал и команду на сторону MySQL забросил
...
Рейтинг: 0 / 0
18.06.2020, 19:33
    #39970631
siniypank
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка обновления прилинкованой таблицы
a_voronin, Спасибо обращусь туда
...
Рейтинг: 0 / 0
19.06.2020, 10:21
    #39970762
siniypank
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка обновления прилинкованой таблицы
a_voronin
siniypank,

это вам на MySQL ибо MSSQL свое дело сделал и команду на сторону MySQL забросил


Добрый день. Вы оказались правы.
Нашёл причину такого поведения, виной всему всё-таки на стороне MySQL значение PRICE float, поменял на decimal(15,5) и все ок.
Вдохновила статья из FAQ MySQL: http://tarlyun.com/blog/2011/03/22/xranenie-ne-celyx-chisel-v-mysql/
Топик закрыт.


Код: plaintext
P.S.  По желанию Модераторы можете перенести топик в MySQL
...
Рейтинг: 0 / 0
19.06.2020, 11:30
    #39970802
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка обновления прилинкованой таблицы
siniypank,

если честно - сомнительно что при ошибке оптимистической модели параллелизма проблему решает изменение типа данных в таблице.
...
Рейтинг: 0 / 0
19.06.2020, 13:39
    #39970874
siniypank
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка обновления прилинкованой таблицы
felix_ff
siniypank,

если честно - сомнительно что при ошибке оптимистической модели параллелизма проблему решает изменение типа данных в таблице.


я тоже в это не верил, и все знакомые тоже об этом говорили, пока на стороне сервера MySQL не изменил тип данных (ради интереса). При значении float цена стояла 196.8 когда перевел на decimal(15,5) цена стала 196.80001.
Во всех значениях где в конце была 1 те строки как раз не обновлялись.

Для подтверждения могу повторить все с детальным отчетом и принтскринами.
...
Рейтинг: 0 / 0
19.06.2020, 13:46
    #39970882
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка обновления прилинкованой таблицы
siniypank,

я не утверждаю, что это не решение проблемы. артефакты использования OPENQUERY вполне могут проявляться в такой степени. Просто странно что сервер ругается именно такой ошибкой, а проблема лечится изменением типа данных.

Если можете поэкспериментируйте, если Ваше утверждение верно, то это действительно интересное поведение системы. Для опыта будет полезно.
...
Рейтинг: 0 / 0
22.06.2020, 18:39
    #39971970
siniypank
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка обновления прилинкованой таблицы
felix_ff
siniypank,

я не утверждаю, что это не решение проблемы. артефакты использования OPENQUERY вполне могут проявляться в такой степени. Просто странно что сервер ругается именно такой ошибкой, а проблема лечится изменением типа данных.

Если можете поэкспериментируйте, если Ваше утверждение верно, то это действительно интересное поведение системы. Для опыта будет полезно.



Результат тот же. Вносил на MySQL строку вручную, тот же самое, изменил PRICE с 196.8 на 196.7 обновляет, изменяю тип на decimal все ок.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка обновления прилинкованой таблицы / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]