vfp7建立的CURSOR是可读写的,利用SPT技术可以从服务器取回的多批次数据放在一个CURSOR,这个CURSOR是可读写及建立索引的,在CURSOR里处理数据特快,可以说vfp处理前台数据还是非常方便与迅速的。
刚学了两天DELPHI,就想将自己用VFP7写的C/S结构的程序用DELPHI重写一遍,先从最简单的报表组合查询开始:三个CHECKLISTBOX,第一个为机构选项,第二个为币种选项,第三个为科目选项,三个选项可组成无数查询组合,在VFP里是搞一个循环,每次通过发一个变量过去,以存储进行读取符合条件的数据装入CURSOR里,循环结束后再在CURSOR里建立索引进行排序,然后通过DBGRID显示出来。而在DELPHI里以ADOQUERY、ADODATASET或ADOSTOREDPROC取的CURSOR,一次仅能读取部分数据,如何将这此数据合并起来?
也曾想修改SQLSERVER2000的存储进程,将数个选项组合以数组的形式传给后台数据库,在存储进程里进行分步读合并后传递给前台,但这岂不成了sql编程了,那delphi难道仅能显示一下数据,客户端的数据处理能力岂不太弱,那数据的处理岂不要靠后台数据库。
本人乃delphi的菜鸟之菜鸟,哪位大侠若能赐教,本人愿送上100分

解决方案 »

  1.   

    在delphi中也一样的
    你一样可以修改cursor中的数据
    adoquery.edit{or append};
    adoquery.fieldbyname("afield").asstring := 'test';
    adoquery.post;
    数据就提交回去了(如果你不用事务的话)
      

  2.   

    谢谢Focus(老鱼)的回复。
    在VFP里,进行组合查询前可先生成一个空的CURSOR,多次从后台数
    据库取出的数据分别插入CURSOR(例如,先从后台数据库取出机构号
    为66的报表插入CURSOR,再从后台数据库取出机构号为88的报表再
    插入CURSOR,若还有,依次进行,最后再用DBGRID显示出来)。而
    DELPHI每次生成的CURSOR是不能合并的,我并不想修改每次查询的数据,
    而仅想将多次查询的结构相同的数据合并到一个表中再通过DBGRID显示
    出来。
      

  3.   

    对于大数据量的计算的处理,最好就是放在后台来运算,只把结果返回,这不是delphi客户端数据处理弱的问题,而是这样能提高效率
      

  4.   

    好像是用Append命令可以动态的将数据集合在一起.楼主试试看.
    data1:=clientdataset2.data;
    clientdataset1.append(data1);
      

  5.   

    而且Delphi强调小批量多次存取数据,加快执行效率.所以楼主提出来得几个问题都是Delphi已经解决的.推荐你看看李维的书 Delphi5.X系列的 ,在网上下载,有电子版 
    书名是  Delphi5.X分布式多层应用系统篇
      

  6.   

    刚学了两天DELPHI!
    为什么不多学几天再来问?
      

  7.   

    谢谢henreash(虫子)的回复。
    请问如何定义 DATA1?
      

  8.   

    谢谢PDBRID(老巢)关注。
    to :"为什么不多学几天再来问?",如果多学几天恐怕自己就解决了,但时间就是金钱。
      

  9.   

    问题已经解决:使用dbisam控件dbisamtalbe,可生成memory table,即内存表,同vfp7中的cursor基本一样,很好用,不象clientdataset可能存在内存表受限制的问题(据说最大为16K,不知真假)。
    谢谢以上各位仁兄的回复