Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 989

/ вопрос открыт /

Здравствуйте, эксперты!

Нужно создать таблицу с триггером.
Вроде бы последовательно все создается, но только триггер (последний запрос rTriggers)
Говорит, неизвестная таблица

Что делаю не так??

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1. <code language=delphi>
  2. var con: TDataBaseConnection;
  3. var TableName: string;
  4. var Request : string;
  5. var rGenerator: string;
  6. var rTable: string;
  7. var rPrimaryKey: string;
  8. var rTriggers: string;
  9. begin
  10. con := TDataBaseConnection.getConnect();
  11. TableName := Self.TablesNameComboBox.Text;
  12.  
  13. rGenerator := 'CREATE GENERATOR GEN_' + TableName + '_ID;';
  14. con.ExecuteEditSQL(rGenerator);
  15.  
  16. rTable :=
  17. 'CREATE TABLE ' + TableName + ' ('
  18. + 'ID INTEGER NOT NULL,'
  19. + 'NAME VARCHAR(100) NOT NULL,'
  20. + 'CAPTION VARCHAR(150) NOT NULL,'
  21. + 'SAVE_NAME VARCHAR(100),'
  22. + 'ID_ITEM_TYPE INTEGER,'
  23. + 'COLOR VARCHAR(10) DEFAULT ''clNone'');';
  24. con.ExecuteEditSQL(rTable);
  25.  
  26. rPrimaryKey := 'ALTER TABLE ' + TableName + ' ADD CONSTRAINT PK_' + TableName + ' PRIMARY KEY (ID);';
  27. con.ExecuteEditSQL(rPrimaryKey);
  28. con.DataBase.Commit;
  29.  
  30. rTriggers := 'CREATE TRIGGER ' + TableName + '_BI FOR ' + TableName
  31. + 'ACTIVE BEFORE INSERT POSITION 0 '
  32. + 'AS '
  33. + 'BEGIN '
  34. + ' IF (NEW.ID IS NULL) THEN '
  35. + ' NEW.ID = GEN_ID(GEN_' + TableName + ',1); '
  36. + 'END ';
  37. con.ExecuteEditSQL(rTriggers);
  38. </code>


Aндрей Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Aндрей (статус: 1-ый класс)
Вопрос отправлен: 1 февраля 2011, 10:37
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 1 февраля 2011, 17:02; участников в обсуждении: 1.
Aндрей

Aндрей (статус: 1-ый класс), 1 февраля 2011, 11:34 [#1]:

Там пробела в запросе не хватало!
Извините за беспокойства
Aндрей

Aндрей (статус: 1-ый класс), 1 февраля 2011, 11:44 [#2]:

Только вот сейчас не могу понять Пишет
"Project InitReportCorrect.exe raised exception class EFIBInterBaseError with message 'Invalid token.
Invalid request BLR at offset 32.
Generator GEN_T_3_TRI6_INIT is not defined."

Почему он не определен, если он есть
Aндрей

Aндрей (статус: 1-ый класс), 1 февраля 2011, 17:02 [#3]:

Все разобрался,
Спасибо за внимание

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:48
Выполнено за 0.02 сек.