Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2010, 09:05   #21
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Значит скорее всего поля с русскими названиями не работают в этой СУБД
Хм но IBExpert их создает. Ладно почему тогда не работает автоинкремент
Lokos вне форума Ответить с цитированием
Старый 26.04.2010, 09:29   #22
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

посмотри, создан ли триггер и какое значение в базе имеет твоё инкрементное поле?
dron-s вне форума Ответить с цитированием
Старый 26.04.2010, 09:31   #23
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от dron-s Посмотреть сообщение
посмотри, создан ли триггер и какое значение в базе имеет твоё инкрементное поле?
Создан не тригер а генератор, он создается когда указывается что поле автоинкрементное только вот не работает он этот генератор.
И если каму интересно я добавил запись на русском в поле с русским названием
Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
pFIBQuery1.SQL.Clear;
Form1.pFIBQuery1.SQL.Text:='INSERT INTO NT (ID,KOL,"ИМЯ") VALUES(6,:KOL,:Name)';
Form1.pFIBQuery1.ParamByName('KOL').Value:=5;
Form1.pFIBQuery1.ParamByName('Name').Value:='мяса';
Form1.pFIBQuery1.ExecQuery;
Form1.pFIBQuery1.Transaction.Commit;
end;
Lokos вне форума Ответить с цитированием
Старый 26.04.2010, 09:47   #24
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
Создан не тригер а генератор, он создается когда указывается что поле автоинкрементное только вот не работает он этот генератор.
создание генератора без триггера не имеет значения
Код:
SET TERM ^ ;
CREATE OR ALTER TRIGGER NAME_TRIGGER_BI FOR NAME_FIELD_TRIGGER ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.NAME_FIELD IS NULL) THEN
    NEW.NAME_FIRLD = GEN_ID(GEN_NAME_GENERATOR_FILED_ID,1);
END
^
SET TERM ; ^
dron-s вне форума Ответить с цитированием
Старый 26.04.2010, 09:54   #25
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от dron-s Посмотреть сообщение
создание генератора без триггера не имеет значения
Код:
SET TERM ^ ;
CREATE OR ALTER TRIGGER NAME_TRIGGER_BI FOR NAME_FIELD_TRIGGER ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.NAME_FIELD IS NULL) THEN
    NEW.NAME_FIRLD = GEN_ID(GEN_NAME_GENERATOR_FILED_ID,1);
END
^
SET TERM ; ^
Я этого не знал. Тригер создал сам СПС
Только есть вопрос у меня код тригера такой
Код:
CREATE OR ALTER TRIGGER NT_BI0 FOR NT
ACTIVE BEFORE INSERT POSITION 0
AS
begin
  if (NEW.ID = 0) then
     NEW.ID = GEN_ID(GEN_NT_ID,1);
end
^


SET TERM ; ^
тоесть он реагирует если запись =0, если написать null то выдается ошибка я подозреваю из за того что поле ID имеет тип Integer.
Какой тип лучше использовать
Lokos вне форума Ответить с цитированием
Старый 26.04.2010, 10:09   #26
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
с компонентами FIBPlus так не прокатывает.
Иногда имя поля заключают в двойные ковычки вместо [] - в некоторых СУБД прокатывает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2010, 10:27   #27
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Иногда имя поля заключают в двойные ковычки вместо [] - в некоторых СУБД прокатывает.
Согласен. В первый раз когда пытался заключить в "_" выдалась ошибка ведать не связанная с именем поля а я подумал что причина именно в русских буквах
Lokos вне форума Ответить с цитированием
Старый 26.04.2010, 11:21   #28
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
тоесть он реагирует если запись =0, если написать null то выдается ошибка
какая ошибка? скрин в студию?
Цитата:
я подозреваю из за того что поле ID имеет тип Integer.
у первичного ключа и должен быть тип Integer, аналогично также как и у генератора...
dron-s вне форума Ответить с цитированием
Старый 26.04.2010, 17:24   #29
bezOn
Пользователь
 
Регистрация: 14.04.2010
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Lokos Посмотреть сообщение
Доброго времени суток.
При попытке добавить запись в таблицу следующим способом появляется ошибка...
Какая версия Delphi ?
bezOn вне форума Ответить с цитированием
Старый 27.04.2010, 03:30   #30
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от bezOn Посмотреть сообщение
Какая версия Delphi ?
Версия Delphy 2009.
Со всем разобрался просто надо было изменить код тригера
Lokos вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двухмерный массив из 20 столбцов. Вставить в него столбец из чисел 10 после всех четных столбцов. Дмитрий142 Помощь студентам 9 07.06.2012 19:32
Возможно ли использование нескольких столбцов подстановки для одного поля? jonni Microsoft Office Access 10 20.05.2009 22:25
Использование кодовых имен страниц книги в надстройках tae1980 Microsoft Office Excel 3 17.03.2009 09:01
Сохранение имен столбцов при импорте данных из Delphi в Excel an4ik Общие вопросы Delphi 3 07.03.2009 15:23
Вывод имен столбцов maxix БД в Delphi 2 29.09.2008 16:28