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

Вниз

Проблема с генераторами в IB->Delphi   Найти похожие ветки 

 
MyVeryShortLogin   (2002-08-26 12:13) [0]

создал генератор, триггер:
CREATE GENERATOR "IDNO_GEN";

CREATE TRIGGER "CREATE_ID" FOR "TEST"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.ID = GEN_ID(IDNO_GEN, 1);
END

если вставка происходит SQL запросом (insert into...), то все ОК,
а если через TDBGid в Delphi, то вылетает еггог-а "Field "ID" must have value", т.е. триггер не запускается, как лечить?


 
Reindeer Moss Eater   (2002-08-26 12:18) [1]

Триггер запускается.
Установи свойство Required для этого TField в False


 
Leran2002   (2002-08-26 12:22) [2]

Отрывок из статьи на www.ibase.ru:
использование хранимой процедуры не всегда удобно - BDE может решить, что процедура вероятно изменяет какие-то данные на сервере, и в режиме autocommit завершит текущую транзакцию, что вызовет перечитывание данных TTable и TQuery. Более простым способом является получение значения генератора при помощи запроса:
SELECT GEN_ID(NEWCLIENT, 1) FROM RDB$DATABASE

При этом, если запрос помещен например в Query2, текст в BeforePost будет следующим:

begin
if DataSource.State = dsInsert then
begin
Query2.Open;
ClientTable.FieldByName("CLIENT_ID").asInteger:=
Query2.Fields[0].asInteger;
Query2.Close;
end;
end;



 
MyVeryShortLogin   (2002-08-26 13:16) [3]

2 Reindeer Moss Eater поле ID у меня NOT NULL PRIMARY KEY
2 Leran2002 сенкс, заработало, только приращивает с шагом 2, но это мелочи, хотя если знаешь в чем дело, то буду благодарен.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
1-50684
Ionv
2002-09-04 08:10
2002.09.16
Помогите начинающему!!!


14-50915
Ferrari_the_best
2002-08-21 03:22
2002.09.16
Ответ на Helpa нужна!!!!!!


1-50766
Gayrus
2002-09-06 04:31
2002.09.16
Связь c DLL


1-50791
MaximatorVeter
2002-09-03 15:06
2002.09.16
Не могу разобраться как работает метод Assign


1-50683
KidMan
2002-09-04 22:48
2002.09.16
Вывод в файл





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский