我本来想修改一个表中的一个记录
用下面这段代码进行操作
qWeb.sql.clear;
qWeb.sql.add('select * from webmodel where webname=' + quotedstr(tvWeb.Selected.Text));
qWeb.open;
if not qWeb.eof then begin
qWeb.Edit;
qweb.fieldbyname('webname').AsString := 'AAAA';
qweb.Post;
qWeb.Refresh;
end;结果发现记录就是没有被修改,也没有报任何错误;更奇怪的是,用下面这段代码却可以
str:='AAAA';
qweb.Close;
qweb.SQL.Clear;
qweb.SQL.Add('update webModel set webname=''' + str + '''');
qweb.Prepare;
qweb.execsql;
用下面这段代码进行操作
qWeb.sql.clear;
qWeb.sql.add('select * from webmodel where webname=' + quotedstr(tvWeb.Selected.Text));
qWeb.open;
if not qWeb.eof then begin
qWeb.Edit;
qweb.fieldbyname('webname').AsString := 'AAAA';
qweb.Post;
qWeb.Refresh;
end;结果发现记录就是没有被修改,也没有报任何错误;更奇怪的是,用下面这段代码却可以
str:='AAAA';
qweb.Close;
qweb.SQL.Clear;
qweb.SQL.Add('update webModel set webname=''' + str + '''');
qweb.Prepare;
qweb.execsql;
看看sqlServer端执行了些什么
qWeb.Edit;
qweb.fieldbyname('webname').AsString := 'AAAA';
qweb.Post;
qweb.next;//加一句
qWeb.Refresh;
end;
begin
qWeb.First;//加上这句后在试试;
qWeb.Edit;
qweb.fieldbyname('webname').AsString := 'AAAA';
qweb.Post;
qWeb.Refresh;
end;
还是没反应哦!
真是郁闷啊
有这样莫名奇妙的问题
不行啊
qWeb.Edit;
qweb.fieldbyname('webname').AsString := 'AAAA';
qWeb.Edit;
qWeb.next;
end;
qweb.post;
你要将所有记录中的webname字段都改掉当然不行拉
这我知道啦 还不至于那么笨啦
实际上默认是修改第一个记录啦
while not qWeb.eof then
begin
qWeb.Edit;
qweb.FieldByName('webname').AsString := 'AAAA';
qWeb.Next;
end;
qweb.Post;
qWeb.sql.add('select * from webmodel where webname=' + quotedstr(tvWeb.Selected.Text));
qWeb.open;
if not qWeb.eof then begin
qWeb.Edit;
qweb.fieldbyname('webname').AsString := 'AAAA';
qweb.Post;
qWeb.Refresh;
end;是不是想该所有的记录(WEBNAME)?可是循环感觉你只做了一半
qWeb.sql.clear;
qWeb.sql.add('select * from webmodel where webname=' + quotedstr(tvWeb.Selected.Text));
qWeb.open;
if not qWeb.eof then begin
qWeb.Edit;
if (qWeb.stats in [dsedit, dsinsert]) then //加一句
begin
qweb.fieldbyname('webname').AsString := 'AAAA';
qweb.Post;
end;
qWeb.Refresh;
end;
难道没操作成功吗to:deluxtx(警告!CSDN--熊出没的地方
我只要修改一个记录。
to:longguolin(沧海桑人)
你只是加了个判断而已,还是不行啊
啊 难道就没人遇到过这种情况吗
把你的sql语句打印出来执行看看是否有数据查询出来了,如果根本没有数据查询出来的话,当然就不会执行也不会报错了。呵呵,乱说的,还是新手的说。