关于QUERY表修改只读集的问提,帮忙看看,在线等!!!!急!!!!
在实行了order by的SQL后,QUERY只返回只读集合,但是我希望保存排序后的只读集合到数据表,并且修改只读集合。书上说加个QUERY2,通过修改语句UPDATE对原来的QUERY只读集合修改,但我不知道具体如何实行,求教!!!! 问题点数:50、回复次数:14Top
1 楼helodd(感动/angle)回复于 2003-11-01 10:54:22 得分 0
var
i:integer;
begin
Query1.open;
Query2.open;
query2.append;
for i:=0 to Query1.recoredcount-1 do
begin
query2.FieldByName('ID').value:=query1..FieldByName('ID').value;
query2.FieldByName('Name').value:=query1.FieldByName('Name').value;
query2.post;
query2.append;
query1.next;
end;Top
2 楼angle097113(深思不解)回复于 2003-11-01 12:50:01 得分 0
或者你把排序后的数据插入到临时表中
在删除原来的数据后 把排好的数据插入
insert into table1 select * from #Temp1Top
3 楼play00505(play)回复于 2003-11-03 12:13:35 得分 0
TEMP1是什么?就是QUERY1?
那么插入后,数据表是否就真正改变了?
有没有用到UPDATA的方法啊?我认为这样会对整个表操作,会比较方便点。
共同探讨。Top
4 楼czp(万非)回复于 2003-11-03 12:37:57 得分 0
即使排序后也是可以编辑的,书上说不能,可是我一直能够。Top
5 楼Hedonism(江悦)回复于 2003-11-03 12:57:44 得分 0
排序对只读并没有什么限制,也许是你把Query 设为只读,或是把感知组件设为只读了。Top
6 楼zhoutian618(秦失其鹿,天下共逐,唯胜者得鹿而割之)回复于 2003-11-03 13:03:29 得分 0
//刷新数据:
Query.SQL.Clear;
Query.CachedUpdates:=True;
Query.OnUpdateRecord:=QueryUpdateRecord;
Query.SQL.Add('select * from Table1 order by Field1');
Query.Active:=True;
//
QueryUpdateRecord事件的代码不要写,只设置一个空代码就可以了.Top
7 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-11-03 13:05:53 得分 0
to Hedonism(追日)
恰恰是排序的问题,除非你按照主键排序。否则没办法修改,这是视图和表的区别。
这个问题其实有无数人问过了,而且问题比较典型。
基本上一本好一些delphi书都会提及这个问题,
你需要结合TUpdateSQL 控件结合使用。
delphi目录下有个例子,你可以参看。Top
8 楼play00505(play)回复于 2003-11-03 17:16:04 得分 0
var
i:integer;
begin
Query1.open;
Query2.open;
query2.append;
for i:=0 to Query1.recoredcount-1 do
begin
query2.FieldByName('ID').value:=query1..FieldByName('ID').value;
query2.FieldByName('Name').value:=query1.FieldByName('Name').value;
query2.post;
query2.append;
query1.next;
end;
这个方法试过了,不行。QUERY2得到的还是没有ORDER BY 以前的数据表,也就是说QUERY2未能保存ORDER BY之后的只读集。
再请问上面的兄弟,哪个例子啊?拜托?请详细点,有点吊我胃口。
Top
9 楼play00505(play)回复于 2003-11-04 10:03:39 得分 0
或者你把排序后的数据插入到临时表中
在删除原来的数据后 把排好的数据插入
insert into table1 select * from #Temp1
#Temp1指什么?我原样打进去不行的。
Top
10 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-11-05 03:05:59 得分 0
delphi目录下有个例子,你可以参看。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
类似的方法 IBX, DBX都是这么实现的。Top
11 楼play00505(play)回复于 2003-11-19 16:38:08 得分 0
yourenmeiTop
12 楼cnhzgb(gb)回复于 2003-11-19 16:42:17 得分 50
要用sqlquery de
不懂问我Top
13 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-11-19 18:20:33 得分 0
楼主王八蛋,你捣粪,你这是在耍大家!Top
14 楼myling(不理你)回复于 2003-11-20 09:42:53 得分 0
嘿嘿, 耙子,生这么大气干什么?封了它不就完了?Top




