Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.042 c
14-42117
Vlad Oshin
2003-10-24 14:45
2003.11.13
Не кажется ли Вам, что Достоевский доказал вину...


1-41541
Blunder
2003-10-28 08:09
2003.11.13
О строках


1-41717
willys
2003-11-03 16:58
2003.11.13
работа с мат. выражениями


7-42192
ZioN
2003-08-28 15:13
2003.11.13
Работа с CD-Rom


3-40989
virusfil
2003-10-15 03:44
2003.11.13
DBGrid & Hint