远程连接mssql数据库得到数据后,如何做到关闭连接,dbgrideh1仍然显示数据?因为为了减轻服务器压力,所以得到数据后,就关闭连接,但是现在一关闭连接,数据跟着就关闭了,如何让数据仍然显示呢?

解决方案 »

  1.   

    dbgrideh1指定的连接组件式哪个,adoquery1.close
      

  2.   

    没看完要求,delphi只有adodataset组件可以临时存储数据源,详细的使用方法请你自己去参考吧
      

  3.   

    dbgrideh 连接adoquery1,连接远程数据后,数据显示在dbgrideh1中,但是一旦关闭adoconnection1连接,那adoquery1中的数据也就跟着关闭了,我希望就是adoconnection关闭了,但是dbgrideh1中仍然显示刚才的数据。怎么做到?
      

  4.   

    给你个笨办法,就是将数据保存到本地文件中,ADOQuery.SaveToFile.等关闭连接后再LoadFromFile就可以了
      

  5.   

    根据你的要求,现在做的Delphi三层结构程序都可以实现你的要求,如果是2层结构的,你可以做成假三层结构,这样对数据库的访问都在内存中,不用每次操作都访问数据库,例如新增,可以一次增加若干条记录然后一次提交到数据库; 如果你做的更好一些可以做数据库的连接池,这样也不用你说的,用完就关闭,毕竟打开数据库连接也需要时间的。1、假三层用到的组件:DataSource、ClientDataSet、DataSetProvider、AdoQuery
       和真三层差不多,就是用到的数据集在ClientDataSet里操作;
      

  6.   

    你在本地建一个临时表`
        把远程读来的数据全部放在你刚刚建好的临时表里
    你在关闭adoconnection
        然后把adoquery指向临时表``
    不就好了吗`?
    (虽然很傻``呵呵`应该可以``)
      

  7.   

    用完后``就把临时表KILL掉``
        
      

  8.   

    使用StringGrid或DataGrid就行了。
    自己写一个过程,实现数据的显示。
    关了数据库连接,照样显示和ListView的功能接近。
      

  9.   

    同意8楼,用三层的思路来处理,当然你可以把dbgrid换成stringgrid,这样好像要麻烦不少,呵呵
      

  10.   

    用stringgrid,listview等都可以,不要用数据感知控件.
      

  11.   

    把Adoquery的游标属性换一换!
      

  12.   

    在 数据集 QUERY关闭前 将数据保存在clientdataset之中临时缓存中,将DBGRID的数据集制定为clientdataset就可以啦。
       如下:clientdataset1.data:=Tclientdataset(dbgrid.datasoruce.dataset).data;
            clientdataset1.open;        dbgrid.datasoruce.dataset:=clientdataset1这样就可以实现你要的东东啦
      

  13.   

    //连接
    ADOQuery1.Connection:= ADOConnection1;ADOQuery1.Active:= True;// 读取数据后 
    ADOQuery1.Connection:= nil; // Connection属性置为nil
    ADOConnection1.Connected:= False; // 关闭连接
      

  14.   

    除了楼上回答正确外,估计其他的人都不懂ADO的使用。