请问,我用下面的语句更改adoquery的一个字段,怎么出现以下的错误呢?
procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Edit;
adoquery1.First;
adoquery1.FieldByName('bzxx').Value:=adoquery1.FieldValues['mc'];
adoquery1.post;
end;错误提示是“adoquery1:dataset not in edit or insert mode” 我前面不是用了aodquery1.edit
了吗。郁闷!!!
procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Edit;
adoquery1.First;
adoquery1.FieldByName('bzxx').Value:=adoquery1.FieldValues['mc'];
adoquery1.post;
end;错误提示是“adoquery1:dataset not in edit or insert mode” 我前面不是用了aodquery1.edit
了吗。郁闷!!!
我建议还是在SQL语句里用update这样来操作比较好,也很灵活通用。
begin
adoquery1.Edit;
adoquery1.First;
adoquery1.FieldByName('bzxx').Value:=adoquery1.FieldValues['mc'];
adoquery1.post;
end;搂主,adoquery1.First;之后,你可以看看adoquery1.state是什么样的。记录移动操作,记录集状态是浏览。所以应该这样:
adoquery1.First;
adoquery1.Edit;
adoquery1.FieldByName('bzxx').Value:=adoquery1.FieldValues['mc'];
adoquery1.post;
不过你的代码还是隐患多多,没有校验之类,也没有异常保护。
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from swzzzrave');
adoquery1.SQL.Add('order by 名称');
adoquery1.Open;
adoquery1.ExecSQL不行
begin
adoquery1.First;
adoquery1.Edit;
adoquery1.FieldByName('bzxx').Value:=adoquery1.FieldValues['mc']; //这句有点问题,你想怎样?
adoquery1.post;
end;
总是说Delphi程序员工资低, 看看这道题目, 能不低吗????楼主初学也就罢了,居然回贴的也有人不着边际!
楼主问题也不小,随便那本书上应该有对数据集状态的描述吧!
adoquery1.edit;
adoquery1.insert;等
你在adoquery1.edit;的前一句加一个 adoquery1.open;
就可以用了!!!
SQL和ACCESS里贴数据的方法是不一样的