Bonjour,
il parait qu'avec un ADOQuery, après avoir réalisé un INSERT, on peut récuperer l'ID que l'on vient de générer. Si c'est vrai, comment fait on ?
Merci d'avance ;)
Version imprimable
Bonjour,
il parait qu'avec un ADOQuery, après avoir réalisé un INSERT, on peut récuperer l'ID que l'on vient de générer. Si c'est vrai, comment fait on ?
Merci d'avance ;)
bonjourCitation:
Envoyé par Cpt Anderson
Si je tu comprend ?
Code:
1
2
3
4
5
6
7
8
9
10 with Adoquery Do Begin Sql.clear; Sql.add('Insert .......'); Open Sql.clear; Sql.add('select ID....'); Open, End;
Soit tu utilses une requete Identity (elle est différente selon le SGBD)
Soit tu passes par une transaction (Qu'vec certain SGBD)
Le mieux est de passer par les deux en même temps
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 With AdoConnection1 do begin BeginTrans; // Début de la transaction With AdoQueryInsert do begin // Ici l'insert Try ExecSQL; Except on E:Exception do begin RollBackTrans; // On annule le tout ShowMEssage(E.MEssage); Exit; end; end; end; // with With AdoQueryIndetity do begin Close; SQL.Clear; SQL.Add('Select @Identity as Id from LaTable'); // A vérifier la synthaxe Open; LID=FieldByName('id').asInteger end; // with CommitTrans; // On valide l'ensemble end;
Merci, c'est à peu pres ce que j'ai fait: un SELECT@@IDENTITY juste après mon INSERT.
Merci