|
|
|
Вернуть значение поля после инсерта
|
|||
|---|---|---|---|
|
#18+
Имеется довольно приличная по количеству записей таблица, назовем ее MYTABLE. Добавляю в нее очередную запись, ну хотя бы так: Код: plaintext 1. Поле MTB_ID автогенериться при помощи связки триггер+генератор. Так вот, очень хочется после добавления записи узнать значение, попавшее в MTB_ID. Как его можно выцепить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 11:32 |
|
||
|
Вернуть значение поля после инсерта
|
|||
|---|---|---|---|
|
#18+
Если мне не изменяет память на ORACLE это делается так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 11:34 |
|
||
|
Вернуть значение поля после инсерта
|
|||
|---|---|---|---|
|
#18+
в иб/фб это делается иначе... имхо, довольно геморно... в триггере делаешь не new.key_id=gen_id(gen_name,1); a if (new.key_id is null) then new.key_id=gen_id(gen_name,1); а на клиенте делаешь сначала select gen_id(gen_name) from RDB$DATABASE полученное значение инсеритшь вместе с остальными полями в таблицу.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 11:41 |
|
||
|
Вернуть значение поля после инсерта
|
|||
|---|---|---|---|
|
#18+
Тема очень актуальна. При работе например с Oracle через DOA ид для последней вставленной записи хранится в датасэте. Я использую FibPlus. Если кто знает, где плюсы хранят это занчение, то буду очень признателен за инф. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 14:53 |
|
||
|
Вернуть значение поля после инсерта
|
|||
|---|---|---|---|
|
#18+
Да, собственно, плюсы именно эту проблему решают просто. В DataSet необходимо настроить AutoApdateOptions (GeneratorName - собственно имя генератора, KeyField - первичный ключ, WhenGetGenID - wgBeforePost). При DataSet.Insert добавится пустая строка в датасэт, а в поле с первичным ключем - значение из генератора. Поскольку по умолч. при инсерте указатель будет именно на этой записи, значит новый ид можно брать прямо из датасэта. ЗЫ: при использовании триггера не забыть поставить проверку на вставку нула в PK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 13:45 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32247526&tid=1580074]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
145ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 438ms |

| 0 / 0 |
