Тема / Topic: Не выполняется запрос UPDATE с текстовыми параметрами
Kramarenko Stanislav
Forum Professor / Завсегдатай форума
Участник № / Member № 119
отправлено / posted
Не выполняется следующий запрос к базе MS Access из построителя запросов TM6.02.1, хотя в самом Access он выполняется: UPDATE Tests SET V1End=1,V2End=2,Type="fff",Num="000",Owner="sss" WHERE Tests.ID = 14 как и: UPDATE Tests SET V1End=#V_1#,V2End=#V_2#,Type=#Type#,Num=#Num#,Owner=#Owner# WHERE Tests.ID = #ID# (значения по-умолчанию заданы, но, кстати, в окне отладки построителя запросов это выглядит как Owner="íåèçâåñòåí" вместо Owner="неизвестен") Следующий запрос выполняется везде (т.е. когда нет текстовых параметров): UPDATE Tests SET V1End=1,V2End=2 WHERE Tests.ID = 14 Сообщения / Posts 340 | Из / From: Russia
| IP / IP: IP адрес / IP address |
отправлено / posted
Прошу прощение за задержку, но мы вынуждены взять таймаут для исследования ситуации.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Проверил, как в отладчике, так и в МРВ все работает корректно. Текстовые строки кириллицей передаются в СУБД (проверял с MS Access). Похоже, что у это какие-то проблемы с руссификацией в ОС Windows. Параметры моего ПК: MS WinXP Eng + MUI Rus. MS Office Eng также с MUI Rus. И интерфейс и язык в системе, и в Офисе выбраны как Русский.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Kramarenko Stanislav
Forum Professor / Завсегдатай форума
Участник № / Member № 119
отправлено / posted
По адресу http://stas2100.narod.ru/TestUPDATE.rar лежит проект и база. Запрос №1 (INSERT) выполняется, запросы №2 и №3 (UPDATE с текстовыми параметрами) не выполняются, запрос №4 (UPDATE без текстовых) выполняется.
Текст набран латиницей.
Пробовал на двух разных компьютерах WindowsXP, Office2003, TM 6.02.1
Kramarenko Stanislav
Forum Professor / Завсегдатай форума
Участник № / Member № 119
отправлено / posted
Разобрался! Надо заключать значения текстовых аргументов в одинарные кавычки.
UPDATE Tests SET V1End=1,V2End=2,Type='fff',Num='000',Owner='sss' WHERE Tests.ID = 14
или:
UPDATE Tests SET V1End=#V_1#,V2End=#V_2#,Type='#Type#',Num='#Num#',Owner='#Owner#' WHERE Tests.ID = #ID# Сообщения / Posts 340 | Из / From: Russia
| IP / IP: IP адрес / IP address |