小弟想用一个新的label1、labe2和edit1、edit2来修改当前DbGrid 中的内容。
用一个按bottom 的事件来保存当前edit1、edit2的内容。为什么老是提示出错啊?
下面是代码:
var
adoquery1:Tadoquery;
begin
with ADOQuery1 do
begin
ADOQuery1:= TADOQuery.Create(self);
ADOQuery1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+'database\jf.mdb'+';Persist Security Info=False;';
ADOQuery1.close;
close;
sql.clear;
sql.add('select * from tposition');
sql.add('where 职位编号="'+edit1.Text+'" or 职位名称="'+edit2.text+'"');
open;
fieldbyname('职位编号').asstring:=edit1.Text;
fieldbyname('职位名称').asstring:=edit2.Text;
post;
close;
如果在open 语句后加一条edit为什么会新增一条记录啊,我只是想修改当前的记录的内容啊!请就高手指点.
用一个按bottom 的事件来保存当前edit1、edit2的内容。为什么老是提示出错啊?
下面是代码:
var
adoquery1:Tadoquery;
begin
with ADOQuery1 do
begin
ADOQuery1:= TADOQuery.Create(self);
ADOQuery1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+'database\jf.mdb'+';Persist Security Info=False;';
ADOQuery1.close;
close;
sql.clear;
sql.add('select * from tposition');
sql.add('where 职位编号="'+edit1.Text+'" or 职位名称="'+edit2.text+'"');
open;
fieldbyname('职位编号').asstring:=edit1.Text;
fieldbyname('职位名称').asstring:=edit2.Text;
post;
close;
如果在open 语句后加一条edit为什么会新增一条记录啊,我只是想修改当前的记录的内容啊!请就高手指点.
try
edit;
fieldbyname....
..
post;
finally;
你只是查询出来了,数据集处于浏览状态,当你要插入或修改记录时,一定要把数据集设置为insert或edit状态才行,
if recordcount =0 then append else edit;
fieldbyname('职位编号').asstring:=edit1.Text;
fieldbyname('职位名称').asstring:=edit2.Text;
post;
close;
在前open 使用edit 还是出错啊!
if Recordset.RecordCount>0 then
begin
Edit;
...
post;
end;
这样就不会添加数据了。