Текущий архив: 2003.11.13;
Скачать: CL | DM;
ВнизПроблема с ApplyUpdates Найти похожие ветки
← →
Patrick (2003-10-16 10:21) [0]На форме заполняю поля (изменение) QUERY, затем по нажатию клавиши делаю ApplyUpdated, выползает сообщение типа "SQL General Error...numeric overflow...Cannot transliterate between character sets" ну в общем изместное, до боли, сообщение (уже надоело).На страничке ModifySQL следующее:
update people
set n = :n,
a = :a,
b = :b,
c = :c
where n = :old_n and a = :old_a and b = :old_b and c = :old_c
n - integer
a,b,c - string
вроде всё верно. В IBExpress выполняю такой же update но с конкретными значениями (строки на русском языке), всё прелестно.
Устал уже биться, главное уже не знаю где найти выход из сложившейся ситуации, может кто имел положительный опыт в борьбе с этим. Может это какой глюк BDE.
И еще вопрос, используя компонент IBDataSet, а именно в плане ApplyUpdates, например при переходе с записи на запись в событии
BeforeScroll (необходимо сохранить данные) программа уходит в глухой штопор аж Stack OverFlow похоже ApplyUpdates и BeforeScroll вызывают друг друга. Видимо в корне неправильно так делать, но как быть если необходимо часто обновлять данные?
← →
Nikolay M. (2003-10-16 10:25) [1]
> В IBExpress выполняю такой же update но с конкретными значениями
> (строки на русском языке), всё прелестно.
А если через приведенный пример с БДЕ провести только латиницу?
> Видимо в корне неправильно так делать
Совершенно верно.
> как быть если необходимо часто обновлять данные?
Зависит от задачи. Возможно, достаточно будет выполнять вспомогательный запрос вроде qTempQuery.SQL.Text := "INSERT INTO table_name VALUES (...)" (или UPDATE, смотря что нужно).
← →
Patrick (2003-10-16 10:43) [2]Попрабовал по латински , получилось, но почему так, ведь в BDE, language выставлен корректно PDox Ansi Cyrillic как учили,
и по второму вопросу тот подход который я описывал работает в IBQuery? а вот в IBDataSet не желает. зато у IBDataSEt, как кто-то написал на форуме, возможно несколько запросов типа update в одной секции ModifySQL, верно ли это, и вообще, что всё-таки для IB лучше использовать BDE или IB компоненты или есть еще какая альтернатива, а то какие-то глюки с character set у BDE уже слегка притомили.
← →
stud (2003-10-16 11:45) [3]возможно в настройках бде нужно вообще убрать языковой драйвер
← →
MsGuns (2003-10-16 13:29) [4]При коннекте к серверу надо явно указывать Character Set = win1251.
← →
Romkin (2003-10-16 13:40) [5]Хм... А какое отношение имеет BDE к TIBQuery?
ТАм в TIBDatabase надо страницу указывать lc_ctype=WIN1251
http://www.ibase.ru/devinfo/ibrusfaq.htm
Особо хотелось бы обратить внимание, что у поля должна быть кодировка win1251 установлена
← →
MsGuns (2003-10-16 13:47) [6]>Romkin © (16.10.03 13:40) [5]
Похоже, что все же использует TQuery, предпочитая его компонентам IBX именно по причине, указанной в Patrick © (16.10.03 10:43) [2]
← →
Romkin (2003-10-16 13:59) [7]Может быть. Правда, я не понимаю, какие проблемы у IBX? Все нормально (ну почти), по крайней мере, гораздо лучше, чем пользовать BDE.
А сам я в любом случае использую связку TIBQuery -> TDatasetProvider -> TClientDataset, сейчас как раз их верчу :)
Уж слишком много вкусностей, даже в двухзвенке
← →
kaif (2003-10-16 14:11) [8]Я не понял, какие компоненты используются. Но если IBX, то:
У тебя в компоненте IBDatabase в параметрах соединения прописана кодовая страница?
Щелкни дважды на IBDatabase и посмотри, какая страница выбрана. Я использую WIN1251.
← →
Patrick (2003-10-16 14:23) [9]Кстати, заметил одну особенность у меня была Delphi5 и когда я минуя 6 поставил сразу 7, я сохранил BDE-шный idapi32.cfg и подсунул его в 7-ке, чтобы сохранить всю информацию по алиасам, у меня там действительно был установлен PDox Ansi Cyrillic для моего злосчастного gdb, я решил удалить алиас и создать заново.
И в свойствах нового алиаса, уже не было параметра Database language, интересно почему, опять глюк или несколько другая версия BDE?
← →
stud (2003-10-16 14:42) [10]там должен быть langdriver
← →
Patrick (2003-10-16 14:54) [11]Значит надо переставлять BDE - у вновь создаваемых алиасов BDE для IB, нет langdriver.
← →
Patrick (2003-10-16 14:57) [12]причем не только для IB, а вообще для любого.
← →
stud (2003-10-16 15:03) [13]скачай с борланда инсталяшку и не мучайся.
Страницы: 1 вся ветка
Текущий архив: 2003.11.13;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.042 c