掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ADO DataSetを使用して"IDENTITY"列に任意の値を設定するには? (ID:31045)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になります。 WindowsXPとDelphi2007とMSDE 2000 Release Aを使用しています。 以下の方法で、"IDENTITY"列に任意の値を設定しようとしていますが、 値は設定しているのですが、何故か"Post"時に 「'IDENTITY_INSERT'がONに設定されているときは、 テーブル'TABLE1'のID列には明示的に値を指定してください。」とエラーが表示されます。 データベース名:Test_01 テーブル名:TABLE1 フィールド:'ID','a1' ・'ID'列は"int"型の"IDENTITY"を"はい"で設定しています。 ・"a1"列は"char"型で今回の問題にはあまり関係の無い列です。 ============================= cmpAdoDs.CommandText:= 'SET IDENTITY_INSERT Test_Kaji01.dbo.TABLE1 ON;' + 'select * from Test_01.dbo.TABLE1;'; cmpAdoDs.Open; // 新規行作成 cmpAdoDs.Append; cmpAdoDs.FieldByName('ID').ReadOnly:= false; cmpAdoDs.FieldByName('ID').AsInteger:= 20; // ←任意値設定 cmpAdoDs.FieldByName('ID').ReadOnly:= true; cmpAdoDs.FieldByName('a1').AsString:= 'あ'; // 新規行確定 cmpAdoDs.Post; ============================= "SET IDENTITY_INSERT"を外すとエラーはでなくなりますが、 指定した値は設定されず、自動の値となってしまいます。 もしかして、DataSetでは無理なのでしょうか・・・。 ご教授の方、よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.