|
|
|
Триггер не срабатывает!
|
|||
|---|---|---|---|
|
#18+
Все делаю по учебнику, а не работает! По ODBC из внешней программы нужно непрерывно плучать данные. ODBC - EasySoft для IB7. Написал скрипт - Создал базу, создал таблицу с ПК, создал генератор, создал триггер (before insert) без проверки на ноль, просто NEW.ПК=GEN_ID(...). Скрипт выполняется их IBExplorera без ошибок. Ну так не работает эта автоинкрементная конструкция, хоть убейся! Помогите, что может быть не так? Может в настройках ODBC что? Но как в учебнике и language reference для IB не работает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 22:07 |
|
||
|
Триггер не срабатывает!
|
|||
|---|---|---|---|
|
#18+
Али писал:По ODBC из внешней программы нужно непрерывно плучать данные. ты хочешь получать данные из базы по ОДБЦ? опиши что тебе надо еще подробней. че-то мне кажется, что ты хочешь по ОДБЦ получать увеличивающиеся значения. триггер срабатывает только когда ты делаешь инсерт. у тебя не срабатывает триггер, когда ты вставляешь данные в таблицу по одбц?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2003, 22:15 |
|
||
|
Триггер не срабатывает!
|
|||
|---|---|---|---|
|
#18+
Ситуация следующая: Данные поставляет внешняя прг. В настройках: передать по ОДБЦ, и устанавливается соответствие полей на источнике и в базе. У себя я сотворил такую конструкцию: /*Создание оперативной базы для работы с Квиком*/ /*Создаем базу на Х*/ set sql dialect 3; set names win1251; create database 'Chaos:h:\oper_mod.ib' user 'sysdba' password 'masterkey' page_size 4096 default character set win1251; connect database 'Chaos:h:\oper_mod.ib' user 'sysdba' password 'masterkey' page_size 4096 default character set win1251; create TABLE INQUIK ( NUMECO INTEGER NOT NULL CONSTRAINT PK_INQUIK PRIMARY KEY, INSTRUMENT VARCHAR(150), TIME_TR VARCHAR(15), ... ... ... LAST DECIMAL(15,6), CHANGE DECIMAL(15,6) ); create generator gen_inquik_numeco; create trigger inquik_bi for inquik active before insert position 0 as begin /* IF (NEW.NUMECO IS NULL) THEN */ new.numeco = gen_id(gen_inquik_numeco,1); end Вот это приблизительно, что в скрипте. Когда его выполняешь в ИБЭкспресс все вроде нормально. Я хотел сделать конструкцию для накопления данных в течение дня, т.е. кол-во записей должно постоянно увеличиваться, но не тут-то было. Когда подключаюсь по ОДБЦ в первую строку данные перезаписываются, генератор не генерит, а не генерит он видать из-за несрабатывания триггера. Пробовал ставить АПДАТЕ в триггер, вооще не работает. Так что помоги если можешь! Я с базами новичок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2003, 02:29 |
|
||
|
Триггер не срабатывает!
|
|||
|---|---|---|---|
|
#18+
помогу завтра а то уже не соображаю. а ты пока напиши, в результате какой команды у тебя перезаписывается первая строка, когда ты через одбс. типа insert into INQUIK ( список полей ) values ( там что-нибуть ) и как ты определяешь что оно перезаписалось. потому что инсерт не перезаписывает, а вставляет новое, перезаписывает апдейт... ну посмотрим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2003, 02:37 |
|
||
|
Триггер не срабатывает!
|
|||
|---|---|---|---|
|
#18+
Действительно до завтра. Что касаемо вопроса, то по косвенным данным (документация, сообщения об ошибках) можно предположить, что действительно в прг-поставщике данных работает INSERT INTO. Но!!!! На моей стороне количество записей не увеличивается (я так думаю, потому как данные в строке меняются, а ПК (NUMECO) для этой же строки не меняется). Наблюдаю я это в IBExplorere. Никакими языками и инструментами больше не пользуюсь. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2003, 02:51 |
|
||
|
Триггер не срабатывает!
|
|||
|---|---|---|---|
|
#18+
значит эта программа делает update, раз все меняется, кроме ПК Али писал:Я хотел сделать конструкцию для накопления данных в течение дня, т.е. кол-во записей должно постоянно увеличиваться, но не тут-то было. кажется я понимаю что тебе нужно. сделай так: создай копию таблицы, в которой эта программа делает апдейт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. генератор сделай для новой таблицы, и триггер, чтобы генерировал новый numeco Код: plaintext 1. 2. 3. 4. 5. а в ту таблицу добавь триггер on update, типа так Код: plaintext 1. 2. 3. 4. тоесть при апдейте в новой таблице будет накапливатся история сори, я в спешке, но надеюсь в принципе я понял что ты хотел, а ты понял в какую сторону копать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2003, 16:27 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32283850&tid=1579869]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 502ms |

| 0 / 0 |
