Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.03 c
7-42210
Fantomas
2003-08-24 09:53
2003.11.13
Системный процесс


1-41395
Касперский
2003-10-28 02:41
2003.11.13
Процесс без главной формы.


1-41292
Vlad Oshin
2003-10-31 12:07
2003.11.13
создание окна в runtime


6-41810
saNat
2003-09-10 02:32
2003.11.13
Закачка файла с удаленного компьютера


1-41189
SergeY-cha
2003-11-02 11:23
2003.11.13
winXp





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский