界面大概是这样 一个DBGrid表格 还有一个MainMenu
在MainMenu中有保存 和另存为,打开3个键
一个问题是:用savedialog编写另存为,运行的时候就会出现一个保存的对话框
            但是要保存的话 就不需要弹出对话框 直接保存DBGrid文件
            还有就是怎么确定保存DBgrid中的内容,能不能帮忙教一下怎么写啊?
第二个问题是:我通过另存为保存文件,再通过打开来读,但是会出现:
            无法从指定的源创建记录集,源文件或流必须包括XML或者ADTG格式。出现第二个问题 ,估计一开始保存就出了问题
帮帮忙怎么解决啊????

解决方案 »

  1.   

    看你想把DBGRID中的数据保存成什么形式了,保存成普通的文本文件,还是XML,或者其他?
    给你个例子,抛砖引玉了假设你的dbgrid的数据源是adoquery1,下面的例子先将数据导入到memo1中,然后利用memo1完成对文件的保存var
    s  : string;
    begin
      
    with adoquery1 do
    begin
       first;
       while not eof do
       begin
         s := format('%s;%s',[fieldbyname('aa').asstring,fieldbyname('bb').asstring ]);
         memo1.lines.add(s);
         next;
       end;
       memo1.lines.savetofile('c:\bb.txt');
    end;
      

  2.   

    DBGride是数据感知控件,不是文件编辑控件,如果没理解错,我感觉你用的不是地方!
      

  3.   

    你是不想做文本编辑的功能啊,如果是文本编辑的功能,就不要用DBGRID控件,这个控件是用来和数据库连接的控件,来做数据库开发的时候经常用到!如果你做的是文本编辑,你可以“win32”卡中的“RichEdit”,来做!这个东西比较简单!和edit差不多!
      

  4.   

    不是啊
    就是从另一个DBGRid中拖拉或者通过添加按钮获得记录,然后保存.
    也要在这个DBGrid中直接添加,删除等
      

  5.   

    直接用ADO组件不就行了,ADO组件里的ADOQuery,ADOTable,可以直接存为XML格式的文件