|
|
|
Использование Autoincrement
|
|||
|---|---|---|---|
|
#18+
В качестве первичного ключа использую тип INT AUTOINC Как получить значение после INSERT ? Типа SCOPE_IDENTITY() в MSSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 16:34 |
|
||
|
Использование Autoincrement
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 16:38 |
|
||
|
Использование Autoincrement
|
|||
|---|---|---|---|
|
#18+
Уточню вопрос, речь идет о транзакции... для примера CREATE TABLE Table_Parent (Parent_ID i autoinc, Texts c(10)) CREATE TABLE Table_Child (Child_ID i autoinc, ; Parent_ID i REFERENCES Table_Parent, ; Texts c(10)) ... = Test("Text_Parent", "Text_Child") ... *Хранимая процедура PROCEDURE Test PARAMETERS Text_Parent, Text_Child LOCAL Current_Parent_ID BEGIN TRANSACTION INSERT INTO Table_Parent (Texts) ; VALUES (Text_Parent) Current_Parent_ID = xxx && где взять ??? INSERT INTO Table_Child (Parent_ID, Texts) ; VALUES (Current_Parent_ID, Text_Child) END TRANSACTION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 19:32 |
|
||
|
Использование Autoincrement
|
|||
|---|---|---|---|
|
#18+
В предыдущем примере должно быть CREATE TABLE Table_Parent (Parent_ID i autoinc NOT NULL PRIMARY KEY, ; Texts c(10)) CREATE TABLE Table_Child (Child_ID i autoinc NOT NULL PRIMARY KEY, ; Parent_ID i REFERENCES Table_Parent, ; Texts c(10)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 20:06 |
|
||
|
Использование Autoincrement
|
|||
|---|---|---|---|
|
#18+
Да там же. Непосредственно в таблице Parent. "Фишка" в том, что при создании новой записи (не важно, каким способом) указатель записи автоматически встает на только что созданную запись в указанной рабочей области. Т.е. сразу после команды вставки достаточно прочитать значение автоинкрементного поля в текущей записи нужной рабочей области. Единственное, на что тебе надо обратить внимание в приведенном коде, это то, что команда INSERT-SQL сама открывает таблицу, если она до этого не была открыта. При этом алиас формируется автоматически. Т.е. надо будет следить за тем, какой же реально алиас имеет та рабочая область, куда идет вставка. По-умолчанию, он совпадает с именем таблицы. Но, в общем случае, это может быть и не так. Ну, можешь еще почитать про функцию GETAUTOINCVALUE(). Но она введена только в версии VFP9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 20:15 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=41&tid=1592457]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 411ms |

| 0 / 0 |
