Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Триггер счетчика [D5, IB6.x]


Страницы:   1 2

Донской ©   (2004-09-02 17:16:00) 

День добрый. чисто ламерский вопрос.
В Interbase expert создал первичный ключ в виде счетчика. И сама интербейз експерт предложила создать для него триггер и генератор. Я их создал, базу закрыл.
Когда коннектюсь к ней из дельфи с помощью TIBTable и пытаюсь добавить запись, то после команды post выдается ошибка, что ключевое поле не заполнено.
Разве триггер на стороне сервера не должен это делать сам?


Zacho   (2004-09-03 12:45:00) [21]

Донской   (03.09.04 12:24) [8]
Сделать ей shutdown ? В IBX можно с помощью TIBConfigService


Донской   (2004-09-03 12:42:00) [22]

а, кажется нашел.
надо заполнить поле params у компонента tibdatabase


Донской   (2004-09-03 12:42:00) [23]

а, кажется нашел.
надо заполнить поле parameters у компонента tibdatabase


Sergey13   (2004-09-03 12:41:00) [24]

2[10] Донской   (03.09.04 12:38)
>Остается создание новой таблицы
Не думаю, что это поможет.


Донской   (2004-09-03 12:38:00) [25]

Дело в том, что программа длительное время осциллографирует данные. Данные должны храниться в отдельной таблице, чтобы можно было использовать tdbchart для их отрисовки. Иначе будут глобальные тормоза не только при отрисовке, но и при добавлении данных (63 поля = 63 канала данных), тормоза проверены, этот вариант отпал.
Остается создание новой таблицы с осциллографируемыми данными для каждого сеанса измерений в режиме выполнения программы.
И связь этой таблицы с некоторыми другими таблицами из базы.


Sergey13   (2004-09-03 12:32:00) [26]

2[8] Донской   (03.09.04 12:24)
А почему бы не продолжить успешное использование ИБЭксперта в деле администрирования/проектирования БД? Зачем в программу то это тащить?


Донской   (2004-09-03 12:24:00) [27]

Понятно, доки читаем обязательно.
А вот такой вопрос.
я создал sql запрос с созданием таблицы и внешнего ключа. В документации написано, что если при этом будет возникать ошибка Is in use, то базу надо открывать в монопольном режиме, а уже потом создавать связи между таблицами.
Так вот как программно открыть базу в монопольном режиме?


VID   (2004-09-03 00:21:00) [28]

1. создать генератор для твоего поля ID.
2. создать триггер Before Insert для твоей таблицы где это поле.
3. в коде триггера сделать NEW."ID" = GEN_ID(<generator_name>, 1);


Zacho   (2004-09-02 20:00:00) [29]

2 Донской :
Немедленно и вдумчиво читать http://www.ibase.ru/devinfo/generator.htmи все отальные статьи на http://www.ibase.ru/develop.htm


Донской   (2004-09-02 17:38:00) [30]

Точно. Именно false!
Спасибо, Sergey13


Донской   (2004-09-02 17:36:00) [31]

Для поля Required:=False.... ща, пять сек, проверю...


Донской   (2004-09-02 17:34:00) [32]

Да нет у меня запроса...
у меня такой код:

with IBTable1 do
  begin
     for k:=1 to 1000 do
     begin
        append;
        findfield('id_parent').asinteger:=1;
        findfield('datecreation').value:=now;
        findfield('selected').asinteger:=1;
        findfield('numpi').asstring:=' ';
        findfield('temperature').value:=0;
        findfield('velosity').value:=0;
        findfield('pressure').value:=0;
        post;
     end;
  end;


так вот ключевым является поле ID, которое в этом коде не правится. Я думал, что это должен делать сервер inttrbase.


Sergey13   (2004-09-02 17:33:00) [33]

2Донской   (02.09.04 17:16)
1.Убедись что тригер есть и работает
2.Поставь для поля Required:=False


-SeM-   (2004-09-02 17:24:00) [34]

Попробуй убрать это ключевое поле с текста запроса. Делфи знает, что это поле обязательное, потому и ругается. ИМХО.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо