CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

关于QUERY表修改只读集的问提,帮忙看看,在线等!!!!急!!!!

楼主play00505(play)2003-11-01 01:24:31 在 Delphi / 数据库相关 提问

在实行了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

相关问题

  • 简单问题--关于query表的修改
  • 使用Query组件能实现对数据表的修改?
  • 利用QUERY不能修改数据库的表??
  • 对query作出修改后,怎么应用到表里???急
  • 表修改
  • 关于ClientDataSet连接服务器中的query修改数据库表
  • 修改表结构
  • 报表的修改...
  • 修改表出错
  • 想修改表名为A的表为表名B,求SQL语法。。。。。。。。。(在线等待)

关键词

  • 排序
  • 修改
  • 数据
  • delphi
  • query
  • fieldbyname
  • 表
  • 数据表
  • 插入
  • 集合

得分解答快速导航

  • 帖主:play00505
  • cnhzgb

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo