edit〜postのエラー

解決


amide  2004-08-24 20:18:52  No: 10556

ローカルのMySQLデータベースにODBC接続しています。
読み出しはできるのですが下記を実行するとエラーになります。
「EOleExeptionクラス例外。
行がみつからないため更新できません。
列の値は最後に読み込まれた後で、変更された可能性があります。」

  ADODataSet1.CommandText:='select * from Yakuhin where Ycode=213310';
  ADODataSet1.open;
  ADODataSet1.edit;
  ADODataSet1.fieldbyname('Ysu').asfloat:=50;
  ADODataSet1.post;
  ADODataSet1.close;

原因は何でしょうか?
環境:WinXp-home,Delphi7-pro,mysql-3.23.49,myodbc-2.50.39


Syake  2004-08-24 20:52:39  No: 10557

>ADODataSet1.CommandText:='select * from Yakuhin where Ycode=213310';
>ADODataSet1.open;
//該当行が無かったらエラーになるため記述
if ADODataSet.Recordset.RecordCount > 0 then  
begin
   For i := 0 to ADODataSet.RecordCount -1 do
   //一件だけなら必要ないかも
   begin
>ADODataSet1.edit;
>ADODataSet1.fieldbyname('Ysu').asfloat:=50;
>ADODataSet1.post;
      ADODataSet.Next;
   end;
end;
>ADODataSet1.close;
ではないですか?

多分・・・
'where Ycode=213310'に該当するレコードが無いとか


Syake  2004-08-24 20:56:55  No: 10558

あっ!またやってしまいました。
すいません。

>ADODataSet1.CommandText:='select * from Yakuhin where Ycode=213310';
>ADODataSet1.open;
//該当行が無かったらエラーになるため記述
if ADODataSet1.Recordset.RecordCount > 0 then  
begin
   //一件だけなら必要ないかも
   ADODataSet1.FindFirst;
   For i := 0 to ADODataSet1.RecordCount -1 do
   begin
>ADODataSet1.edit;
>ADODataSet1.fieldbyname('Ysu').asfloat:=50;
>ADODataSet1.post;
      ADODataSet1.Next;
   end;
end;
>ADODataSet1.close;
ではないですか?

多分・・・
'where Ycode=213310'に該当するレコードが無いとか

お騒がせしました。m(__)m


amide  2004-08-24 21:24:03  No: 10559

ADODataSet1.CommandText:='select * from Yakuhin where Ycode=213310';
  ADODataSet1.open;
  showmessage(ADODataSet1.fieldbyname('Yname').asstring);
  ADODataSet1.edit;
  ADODataSet1.fieldbyname('Ysu').asfloat:=50;
  ADODataSet1.post;
  ADODataSet1.close;
でレコードの内容が表示されますので、「行がみつからないため〜」というのではないように思われます。
?????


amide  2004-08-24 22:19:42  No: 10560

OSを再起動しますとエラーが出なくなりました。
お騒がせしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加