Y yzlufei Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-27 #23 while qry1.RecordCount <> 0 do begin sq:='update ..... where ..........'; adoquery2.Close; adoquery2.SQL.Clear; adoquery2.SQL.Text := Sq; adoquery2.ExecSQL; Qry1.ReQuery; //更新之后从新查询,过滤更新后的数据,总是更新第一条。 end; 试试这样。 这是个笨方法,效率很低。 ------------------ 仍然有问题,是不是ADO本身的问题啊?有没有新的版本的下载啊。
while qry1.RecordCount <> 0 do begin sq:='update ..... where ..........'; adoquery2.Close; adoquery2.SQL.Clear; adoquery2.SQL.Text := Sq; adoquery2.ExecSQL; Qry1.ReQuery; //更新之后从新查询,过滤更新后的数据,总是更新第一条。 end; 试试这样。 这是个笨方法,效率很低。 ------------------ 仍然有问题,是不是ADO本身的问题啊?有没有新的版本的下载啊。
Y yzlufei Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-27 #24 我发现不是ADO的问题,是我自己的问题,因为我如果简化update的内容,就没有错误,但是我的在update之前作的工作难道会对update有影响么? 我是在update之前通过取得query1的一个字段的内容,然后连接网络根据这个字段的内容获得相应的数据放到update ××× set ×××=网络数据 where id=××(这个是直接根据query1获得的)
我发现不是ADO的问题,是我自己的问题,因为我如果简化update的内容,就没有错误,但是我的在update之前作的工作难道会对update有影响么? 我是在update之前通过取得query1的一个字段的内容,然后连接网络根据这个字段的内容获得相应的数据放到update ××× set ×××=网络数据 where id=××(这个是直接根据query1获得的)
K kaida Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-27 #25 ... adoquery2.ExecSQL; ADOQuery1.refresh; //因为这里刷新了 ADOQuery1.next;//循环。。。所有这里的 next 已经不是指向原来那条记录的下一条了 所以第二次 update 时就乱了。
... adoquery2.ExecSQL; ADOQuery1.refresh; //因为这里刷新了 ADOQuery1.next;//循环。。。所有这里的 next 已经不是指向原来那条记录的下一条了 所以第二次 update 时就乱了。
Y yzlufei Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-27 #26 adoquery2.ExecSQL; ADOQuery1.refresh; //因为这里刷新了 ADOQuery1.next;//循环。。。所有这里的 next 已经不是指向原来那条记录的下一条了 所以第二次 update 时就乱了。 -----------------------不是这个原因。我把update的内容简单化后--也就是不用从网络上获取数据,直接update就没有错误了。
adoquery2.ExecSQL; ADOQuery1.refresh; //因为这里刷新了 ADOQuery1.next;//循环。。。所有这里的 next 已经不是指向原来那条记录的下一条了 所以第二次 update 时就乱了。 -----------------------不是这个原因。我把update的内容简单化后--也就是不用从网络上获取数据,直接update就没有错误了。
Y yzlufei Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-27 #27 最奇怪的就是我查看了程序运行中所有的update语句,并没有改动我不想改的数据,但是那些数据是怎么被修改的呢?
L liqj_ Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-27 #28 大有可能是 update .... where 条件 ---中这些<条件>有被改变 条件可以使用局部变量先保存,再去网络取数来更新。
Y yzlufei Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-27 #29 大有可能是 update .... where 条件 ---中这些<条件>有被改变 条件可以使用局部变量先保存,再去网络取数来更新。 --------我就是这么做的,而且我获取所有的sql语句,并没有改变这些记录的语句。
大有可能是 update .... where 条件 ---中这些<条件>有被改变 条件可以使用局部变量先保存,再去网络取数来更新。 --------我就是这么做的,而且我获取所有的sql语句,并没有改变这些记录的语句。
无 无泪 Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #30 看来你的把 update .... where 的语句写全了让我们看看了,要不然,光凭着猜测……比较费事,也费时!
H hasam Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #32 sq:='update ..... where ..........'; ADOQuery1.refresh; adoquery2.Close; adoquery2.SQL.Clear; adoquery2.SQL.Text := Sq; adoquery2.ExecSQL; ADOQuery1.next;//循环
sq:='update ..... where ..........'; ADOQuery1.refresh; adoquery2.Close; adoquery2.SQL.Clear; adoquery2.SQL.Text := Sq; adoquery2.ExecSQL; ADOQuery1.next;//循环
方 方雁 Unregistered / Unconfirmed GUEST, unregistred user! 2006-06-28 #34 这个问题我早就遇到过, 就是把ADOQuery1.refresh;放在循环外面就OK啦