TQuery SQL 搜索返回记录集怎样设置才可以修改 怎样回写到原来的数据库 -- 仅仅的 295 全送 !!!!(0分)

  • 主题发起人 主题发起人 半疯.半仙
  • 开始时间 开始时间

半疯.半仙

Unregistered / Unconfirmed
GUEST, unregistred user!
来自:ymf, 时间:2002-4-29 10:50:00, ID:1075652
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from 表');
adoquery1.open;
adoquery1.edit;//修改
adoquery1.post;//提交


来自:zhai_xin, 时间:2002-4-29 10:53:00, ID:1075663
这个结果集是不能修改的,你只能修改表中的数据。
你可以将查询出来的结果集保存到一个临时表中,并对临时表进行修改,然后根据这个临时
表修改原有的数据。



来自:半疯.半仙, 时间:2002-4-29 10:57:00, ID:1075675 | 编辑
来自:ymf, 时间:2002-4-29 10:50:00, ID:1075652

adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from 表');
adoquery1.open;
adoquery1.edit;//修改
adoquery1.post;//提交

你的方案我试验过了 程序执行到

adoquery1.edit;//修改--------就会提示 只读数据集合 无法修改 !

返回一个 错误的 !

---------------------------




来自:rainfly, 时间:2002-4-29 11:16:00, ID:1075746
设置TQuery的RequestLive属性为True即可(缺省是False)
唉,不知道还有没有分可以分。


来自:半疯.半仙, 时间:2002-4-29 11:27:00, ID:1075781 | 编辑
来自:rainfly, 时间:2002-4-29 11:16:00, ID:1075746
设置TQuery的RequestLive属性为True即可(缺省是False)
唉,不知道还有没有分可以分。

我还有点分 但是 你说的方法我也试验过 还是不行 ! 程序执行结果还是 只读记录集
回写显示‘不在编辑模式。。。。’错误!


来自:delphilai, 时间:2002-4-29 11:27:00, ID:1075784
rainfly说的对,来迟一步了,不过他说的不够完整,所以我应该还可以赚点分。
先设置Query的ReQuestLive为TRue,这是必要前提,但sql.Text必须满足一定的条件才可以使返回的结果集是活的
1:不能用索引(Order By ),2.只能查询单一的表。3不能用AVg,Sum,Max,Min等聚集函数,不能用Group BY汇总。
不过你的sql是'select * from 表',就可以修改了。效果跟表格一样。还可以用where语句进行过滤。
分给我吧。


来自:半疯.半仙, 时间:2002-4-29 11:35:00, ID:1075803 | 编辑
抱歉 你说的 我在 delphi 数据库变成 一书中 看过 就在 今天早上 可惜 还是不行

你所说的条件 我的 SQL 语句全满足 但是 就是 没法修改 查询返回的记录集。

我快疯了 -------------- 现在也是 !

还有别的方法吗 ? 谁 可以帮忙 我口袋里仅有的 295 分 全送了 !!!!

============================================================

谁可以告诉我 哪出的问题呢?
 
bde还是ado?
如果是bde,用updatesql,缓存更新
如果是ado,本来就具有缓存更新功能
 
TQuery是一個隻讀的記錄集,當然不能修改啦,ADOQuery就是不一樣!
看你用的是什麼數據庫,如果不是ORACLE或INTERBASE或SQL SERVER這類的C/S型數據庫,
用臨時表是一個可行的方法,但是比較復雜,你可以用UPDATESQL組件配合使用!
 
try to use TdataBase ,chaceupdate
 
后退
顶部