在dbgrid中有一些查询出来的数据,我想在一个按钮下把这些数据导入到我数据库中的一个表里面,不知道如何实现,谢谢大家了。

解决方案 »

  1.   

    dbgrid里面的数据是用SQL查询出来的吧?
    是的话直接用一个Insert into MyNewTable + 你查询的SQL就可以了
      

  2.   

    dbgridl里面的数据是查询出来一个根据一些条件修改然后选择出来的,大概的就是从左边的dbgrid选择到右边的dbgrid,右边的这个表是已选择的数据,我想导入表中。
      

  3.   

    var sqlstr:string;
    while not query1.eof do
    begin
      sqlstr:='insert into aa(......) values '+query1.fieldbyname('dddd').asstring.....
    end这样???数据多的话会很慢????
      

  4.   


    我的数据不是直接选择出来的,是左边dbgrid一些待处理的数据,选择到右边的已选中dbgrid,在前台改很麻烦。而且对其他的功能不太清楚,我想把最后的这些数据导入表中。在后台处理,这样的话我其他部分的程序我就不用看了。
      

  5.   

    如此,只有徃循环DBGrid,逐条导入一个临时表中。
      

  6.   


    选择的也可以啊,如果你查询出来结果是单表的,那就将这个表的ROWID也Select出来,将选择的行记住ROWID,保存的时候用ROWID in ('rowid1', 'rowid2','rowid3',...)如果查询的结果是单条件多个表,则要记住主表的查询栏位,然后保存的时候对主表那个栏位用一个IN。如果查询的结果是多条件多个表,则要记住每个表的关键栏位,然后保存的时候每个表一个IN。
      

  7.   

    举个简单的例子,选择Emp表,emp表的主要栏位为EMP_NO
    在用户选择完,点保存的时候,我先将用户选择的每笔数据的EMP_NO保存到一个string里面 s := '(empno1, empno2, empno3,...)'然后在保存的时候用SQL := 'Insert into newtable select * from emp where emp_no in ' + s;
      

  8.   

    不少的人总是想如何把DBGRID中的数据保存到数据库中,其实这有什么意义呢?DBGRID如果是与数据库连接着的,那么DBGRID的数据本来就是数据库中的数据,再保存有什么意义呢?当然如果DBGRID的数据来自于网络,保存到本地数据库这倒有一点意义.因为可以脱机使用数据.但也不必再写一种将DBGRID的数据保存到数据库的代码,你可以再用一个数据集组件将那个与DBGRID连接着的那个数据集组件的数据直接保存到数据库.
    有人说,我是查询所得到本地数据,我想将这个查询结果保存起来,以后用啊!这就更没有必要了,因为你要再看查询结果,可以再用同样的SQL语句查询一次嘛,何必要保存呢?这是一种无效劳动,浪费硬盘空间!