Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Проблемы с Interbase


Автор: Akella 23.4.2004, 08:55
Interbase6
Создаю базу данных def charset выбираю win1251 или CYRL
Создаю таблицу и вней несколько полей.
первое int
остальные varchar с кодировкой win1251 илии CYRL
при добавлении записей с русскими символами в таблицу вылетает ошибка типа "arithmatic exeption, numeric overflow, or string trancation"

Но вот в чем прикол
При добавлении строки, с заполненной только полем типа INT ничего не вылетает, затем редактирую запись и пишу туда (в символьные столбцы) текст с русскими символами - все нормально сохраняется я в шоке. И в мойе программе и в IBConsole тоже самое. thumbs-up.gif thumbs-up.gif thumbs-up.gif thumbs-up.gif thumbs-up.gif

Автор: Alex 23.4.2004, 09:03
Покажи как пытаешься занести

Автор: gray_k 23.4.2004, 09:03
А можешь базу мне на мыло выслать? Я бы посмотрел. Любопытное что-то.

Автор: Гость_Vicktor 23.4.2004, 13:07
Убери SQLUpdate и все должно получиться

Автор: Akella 23.4.2004, 14:22
Я добавляю записи непосредственно в IBConsole - этого достаточно?
Или непосредственно в сетке DBGrid.

базу вышлю

И уменя на форме нет SQLUpdate. Только базаданных, таблица, транзакция.

Автор: _hunter 23.4.2004, 16:00
это просто smile.gif глюк IB -- он некорректно обрабатывает кирилицу
выход -- используй транслитерацию или самодельное кодирование smile.gif

Автор: <Spawn> 23.4.2004, 16:39
Цитата(_hunter @ 23.4.2004, 08:00)
это просто smile.gif глюк IB -- он некорректно обрабатывает кирилицу
выход -- используй транслитерацию или самодельное кодирование smile.gif

Какой еще глюк? У меня все нормально работало, только вот я не помню уже что делал(скоро уже год как с IB последний раз работал). Попозже ссылку на сайт оставлю, где может быть ответ.

Автор: x77 23.4.2004, 16:47
dsergey, в TIbDatabase.Options воткни

lcctype=win1251

Автор: _hunter 23.4.2004, 17:05
странно wow.gif
поискал в гугле и вот что нашел:
http://ivanuts.chat.ru/interbase.htm#SEC2
может это у меня локальный глюк был smile.gif

Автор: <Spawn> 23.4.2004, 17:09
Вот, кстати, http://www.ibase.ru/

Автор: Akella 26.4.2004, 08:41
Я думаю, что нужно делать так (в моем случае):
1. Добавляем пустую запись.
2. Находим ее.
3. Редактируем.
Только пользователь всего этого не видит. Он буднт "видеть" только добавление.

Автор: gray_k 26.4.2004, 13:00
Я посмотрел базу, всё нормально работает, с русскими символами в том числе. Пользовался IBExpert.
Так что ошбка скорее всего в параметрах коннекта. Может ты забыл кодировку указать?

Автор: Akella 26.4.2004, 13:38
Но я же добавляю записи, непосредственно в IBConsole, какие там еще параметры коннекта?

Автор: gray_k 26.4.2004, 13:49
В параметрах соединения надо указывать charset, если он конечно не дефалтовый.

Автор: Akella 27.4.2004, 08:10
нет ребята, все это не то.

Автор: gray_k 27.4.2004, 08:48
Как не то. Говорят тебе, человек упрямый, ВСЁ РАБОТАЕТ!!!!! smile.gif
Пропиши charset в параметрах коннекта.

Автор: x77 27.4.2004, 09:02
dsergey, да ну как это не то, когда самое то.

в консоли - не помню. если вставляешь в sql-редакторе, то сначала скажи ему set names win1251.

а в проге в TDatabase(TIbDatabase) в Options добавь строку: lc_ctype = win1251. сорри за очепятку выше.
Добавлено @ 09:02
тебе же сразу сказали smile.gif

Автор: Akella 27.4.2004, 11:27
Цитата
Как не то. Говорят тебе, человек упрямый, ВСЁ РАБОТАЕТ!!!!!
Пропиши charset в параметрах коннекта.


А я писал, что я добавляю записи непосредствено в IBConsole, там нет никаких параметров при подключении, кроме пользователя и пароля.

Автор: x77 27.4.2004, 11:33
всё там есть. у меня нет этой консоли дебильной, но всё там есть.

точно знаю, что в WISQL32, например, кодировка указывается в Session/Advanced Settings.

Автор: <Spawn> 27.4.2004, 12:20
Ты хоть на предложеный мною сайт заходил? http://www.ibase.ru/devinfo/ibrusfaq.htm

Автор: gray_k 27.4.2004, 13:27
Цитата
А я писал, что я добавляю записи непосредствено в IBConsole, там нет никаких параметров при подключении, кроме пользователя и пароля.

Когда в IBConsole регестрируешь базу, там в настройках есть Default Charset.

Автор: Akella 25.5.2004, 08:12
Если нужно указывать раксладку при коннекте, то зачем при создании БД, или наоборот thumbs-up.gif

Автор: x77 25.5.2004, 11:37
dsergey, затем, что это разные вещи. кодировка указывается для корректной трансилетрации символов. если в базе кодировка не указана, то туда заносятся любые символы без проверок. если указана, то только соответствующие символы. указывать символы надо для корректной отработки сортировки

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)