- - PR -
DataAdapterからinsertした場合の自動採番の取得方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-01-25 09:21
お世話になります。
初めてなのですが、どうしても行き詰ったので質問させて頂きます。 環境:VS2005、C#、Oracle10g OracleDataAdapterからDataTableの新規行をinsertしています。 ソース OracleCommandBuilder objCommandBuilder = new OracleCommandBuilder(dataAdapter); DataTable dataTable = (DataTable)bSource.DataSource; DataRow dataRow = dataTable.NewRow(); dataTable.Rows.Add(新規行dataRow作成メソッド); dataAdapter.Update(dataTable); この際、oracleで自動採番された値を取得したいのですが、どのように取得すればよろしいのでしょうか。 OracleRowUpdatedEventHandlerから取得しようとしていたのですが、渡ってきたOracleRowUpdatedEventArgsには入っていないようです。 初歩的な質問かも知れませんが、よろしくお願いします。 | ||||
|
投稿日時: 2007-01-26 06:07
こんな感じです。
cmdRefreshでは、次のようなSQLを使用します。 SELECT Customers_CustomerID_Seq.CURRVAL FROM DUAL; _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2007-01-26 15:08
ありがとうございました。
てっきりどこかかから値が取れるものだと思っていたので、sqlを発行すると言うところに思いつきませんでした。 また何かあった場合は、よろしくお願いします。 | ||||
|
投稿日時: 2007-01-26 21:50
私は、クライアント側では「仮 ID」を表示させておき、サーバへコミットした時点で仮 ID に対応する ID を取得しています。
クライアントが複数ある場合、CURRVAL が、「現在のクライアントが取得した値」を指しているかどうか保証されないからです。 または、SELECT シーケンス.NEXTVAL FROM DUAL によって、クライアント側で ID を取得します。 _________________ |
1