|
|
|
primary key
|
|||
|---|---|---|---|
|
#18+
Помогите новичку... Если INTEGER primary key заполняется в тригере от генератора, то его нельзя задавать из клиента, тригер все равно его меняет. Принципиально так ли это? (мне необходимо "и так - и так" - по умолчанию и из ХП получаю ID и вручную заношу при INSERT, чтобы знать ID на клиенте для целого ряда действий (других вставок). Работаю через ADO. Не получается... Принципиально так ли это? Я почему то считал, что логично было бы при вставке серверу выполнять... ага... скорее всего так и есть. Неужели единственный выход только через INSERT в ХП, которая и возвратит ID (нехочется раздувать скрипт с большим списком полей, да и вот неоправданная досада - нельзя использовать домены при объявлении ХП (ПОЧЕМУ!!!???) - в моем случае крайне утомительно создавать аккуратные домены для полей, а в ХП снова опускаться)? Хотя, если в тригере проверять ID на NULL и подключать генератор только при NULL (или при DEFAULT, если ID объявлен с DEFAULT). Вот что значит общение, даже попытка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2003, 12:45 |
|
||
|
primary key
|
|||
|---|---|---|---|
|
#18+
точно в триггере проверять на null сам себе ответил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2003, 13:39 |
|
||
|
primary key
|
|||
|---|---|---|---|
|
#18+
Вот пример из "Мир Interbase". Create trigger Table_example_bi active before inset position 0 AS BEGIN IF (NEW.ID IS NULL) THEN NEW.ID = GEN_ID(GEN_TABLE_EXAMPLE_ID,1); END ...или в FB1.5 можно более модно ... NEW.ID=COALESCE(NEW.ID,GEN_ID(GEN_TABLE_EXAMPLE_ID,1)); ... Работает все железно!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2003, 10:12 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=510&tid=1580165]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 383ms |

| 0 / 0 |
