![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление столбца в таблицу InterBase [D7, IB6.x]
_oleg © (2005-06-09 08:31:00)Пытаюсь в run-time добавить новые поля в таблицу. Для этого выполняю SQL-запросы:
ALTER TABLE DATA ADD COLOR_MODE CHAR(1);
COMMIT RETAIN;
ALTER TABLE DATA ADD COLOR INTEGER;
COMMIT RETAIN;
ALTER TABLE DATA ADD H_COEFF SMALLINT;
COMMIT RETAIN;
ALTER TABLE DATA ADD L_COEFF SMALLINT;
COMMIT RETAIN;
ALTER TABLE DATA ADD S_COEFF SMALLINT;
COMMIT RETAIN;
В результате в таблице появляются поля:
COLOR_MODE CHAR(1);
COLOR NUMERIC(9,4);
H_COEFF NUMERIC(4,4);
L_COEFF SMALLINT;
S_COEFF SMALLINT;
Почему типы не соответствуют заданным ?
После такого добавления таблица не открывается, невозможно сделать Backup базы, вылазит "arithmetic exception,numeric overflow or string truncation".
При работе с другими базами такой же структуры, поля добавляются нормально. Использую Firebird 1.0.
В чем может быть причина, и как добавить столбцы в эту таблицу ?
_oleg (2005-06-09 12:12:00) [1]> А диалект какой?
3
Anatoly Podgoretsky (2005-06-09 12:08:00) [2]А диалект какой?
Johnmen (2005-06-09 12:07:00) [3]"В потолке открылся люк - не волнуйтесь, это глюк" (с)
_oleg (2005-06-09 12:04:00) [4]Решить проблему удалось, но очень коряво - добавил сначала два ненужных столбца NULL1 и NULL2 типа SMALLINT, потом остальные. Получилось вот что:
NULL1 SMALLINT;
NULL2 NUMERIC(4,4);
COLOR_MODE CHAR(1);
COLOR INTEGER;
H_COEFF SMALLINT;
L_COEFF SMALLINT;
S_COEFF SMALLINT;
Хочется разобраться в проблеме до конца. Может кто сталкивался ?
_oleg (2005-06-09 08:55:00) [5]Уточняю: Использую FB 1.0.2.
Запросы посылаю из Delphi через TIBSQL.
Zacho (2005-06-09 08:50:00) [6]А каким инструментом ты это делаешь ?
И почему используешь FB 1.0, а не 1.0.3 ?