Главная страница
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.032 c
3-40960
Andrey V.
2003-10-16 21:34
2003.11.13
Позиционирование в гриде


1-41503
AndreyA
2003-10-28 09:12
2003.11.13
Memo $ QRMemo


4-42286
jonni
2003-09-11 04:32
2003.11.13
Structure determination


6-41779
Novenkij
2003-09-19 00:29
2003.11.13
локальная сеть


1-41400
nazar
2003-10-30 00:26
2003.11.13
Подкажите installer который б мог инсталлировать IDAPI 2.5