我使用ADOQuery对表进行了更新..
DMMain.ADOQuerySelect.FieldByName('THREAD').AsString:='1';
DMMain.ADOQuerySelect.Post;然后马上用另外一个ADOQuery对这个表进行查询.
DMThread.ADOSelect.Close;
DMThread.ADOSelect.SQL.Clear;
DMThread.ADOSelect.SQL.Add('select * from table where THREAD='+''''+'1'+'''');
DMThread.ADOSelect.Open;
结果查询不出更新后的数据.
并且.我测试了很长的时间.发现第一个数据集更新后.要过一段时间再用第二个数据集查询才可以查询到正确的记录..
我试过DMMain.ADOQuerySelect.Refresh;也不可以..我使用access数据库.难道access数据库更新很慢?
使用两个ADOQuery实在是没有办法.必须使用.大家就不要在这方面讨论了..
程序必须是第一个数据集更新后.马上用第二个数据集查询..怎样才能马上检索出正确的结果?
DMMain.ADOQuerySelect.FieldByName('THREAD').AsString:='1';
DMMain.ADOQuerySelect.Post;然后马上用另外一个ADOQuery对这个表进行查询.
DMThread.ADOSelect.Close;
DMThread.ADOSelect.SQL.Clear;
DMThread.ADOSelect.SQL.Add('select * from table where THREAD='+''''+'1'+'''');
DMThread.ADOSelect.Open;
结果查询不出更新后的数据.
并且.我测试了很长的时间.发现第一个数据集更新后.要过一段时间再用第二个数据集查询才可以查询到正确的记录..
我试过DMMain.ADOQuerySelect.Refresh;也不可以..我使用access数据库.难道access数据库更新很慢?
使用两个ADOQuery实在是没有办法.必须使用.大家就不要在这方面讨论了..
程序必须是第一个数据集更新后.马上用第二个数据集查询..怎样才能马上检索出正确的结果?
同样的一个问题..难道csdn就没有人解决了吗?
sigh...
var
str:string;str:='l';
DMThread.ADOSelect.SQL.Add('select * from table where THREAD='+QuotedStr(str));
DMThread.ADOSelect.Open;
DMThread.ADOSelect.SQL.Clear;
DMThread.ADOSelect.SQL.Add('select * from table where THREAD=:num');
DMThread.ADOSelect.Parameters[0].Value:=trim('1');
DMThread.ADOSelect.Open;
試試, ApplyUpdate;
Update 的SQL語句!
后设置断点
去后台看看是否更新了?
DMMain.ADOQuerySelect.refresh;
举个例子,如果你用缓存更新的话,那缓存更新的变化要依赖于你连接的database,而不是
adoquery或者adotable
ADOQUERY.SQL.CLEAR;
ADOQUERY.SQL.ADD('SQL');
ADOQUERY.EXECSQL;
1. 是你的更新不成功
//可能直接查看数据库得到验证
2. 是更新成功,但查询语句不正确所以查不到
//更正查询语句,或上句更新某一记录,再把它查询出来,这时不要用更改的内容作查询条件,用它的关键字段
3. 是你这种ADO更新查询方式存在问题,不能及时刷新
//改用,SQL语句方式,如楼上一位所列
ADOQUERY.CLOSE;
ADOQUERY.SQL.CLEAR;
ADOQUERY.SQL.ADD('SQL');
ADOQUERY.EXECSQL;
adoquery1.UpdateRecord;
一定行
大富翁其它朋友问到这一个问题..解答的人不是post.就是close then open.让我感觉大富翁上的人都只懂的close.open...还是csdn好..