お世話になります。
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では無理なのでしょうか・・・。
ご教授の方、よろしくお願いします。
ツイート | ![]() |