1

FireDacで、ms sqlサーバーで最後に挿入されたIDを取得する方法は? ありがとう

4

2 に答える 2

2

自動インクリメント フィールド タイプを使用する

http://www.da-soft.com/anydac/docu/Auto-Incremental_Fields.html

これは次のようなコードを提供します

DataSet.Insert;
.... 
DataSet.Post; 
id := DataSet.FieldByName('ID').AsInteger;

別のアプローチは、で説明されているような適切な SQL ステートメントを作成することです。


AnyDAC の作成者は、 http: //docs.embarcadero.com/products/rad_studio/firedac/uADCompClient_TADCustomConnection_GetLastAutoGenValue@String.html から DBMS 固有のツールを取得する特別な方法も提案しています。

しかし、これらの事後要求はすべて、SELECT @@identity脆弱SELECT SCOPE_IDENTITYで危険です。テーブル A にデータを挿入すると、そのトリガーによって関連するテーブル B と C にデータが挿入される可能性があり、ID は、挿入を開始したテーブルではなく、C の autoinc を呼び出します。

于 2013-04-11T12:49:32.690 に答える