我在DBRID中有多行记录,其中两个字段的值我指定的,其他字段的值是DBGRID中的。怎么保存?
譬如需要保存的表 A:
字段:A1,A2,A3,A4,A5,A6
其中:A1,A2的值我从其他地方取来.
然后一次性增加多行记录. A1,A2的值没有在DBGRID中的。由其他地方附值过来.怎么写? 谢谢!

解决方案 »

  1.   

    应该是对表进行操作吧,DBGrid只是用来显示表中的内容的工具
      

  2.   

    楼上说的对,你先甩开dbgrid,你dbgrid的数据是table 还是query?不管是哪个,假设你dbgrid的数据来自table1,然后你指定的俩个子段假设由你定(假设你定前两列为001,002),然后插入到表table2中,你可以用sql语句来完成。insert into table2 select ''001'' as  A1,  ''002'' as A2 ,A3,A4,A5,A6 from table1 where...当然,要注意你select 中的内容与类型,要与table2的相符合才能插入进去
      

  3.   

    具体是这样:
    我需要显示的操作界面象DBGRID一样。由用户数据一行,一行输入。然后记录按行保存到表里。
    其中的每条记录有2个字段值由其他地方附值过来。
    你们一般用什么控件来做出这个效果。谢谢各位!
      

  4.   

    那你可以用StringGrid这个控件来实现。
      

  5.   

    to coffee36(咖啡)
    能给我例子吗?谢谢! [email protected]
      

  6.   

    有没有人帮我解决一下。 这样的情况怎么操作DBGRID。 还有就是多行记录中,空行在保存时怎么剔除。
      

  7.   

    A     B    C    D 
    特定  特定
    特定  特定你要的效果是不是A,B两个字段的值是你从其他表里取出来的,然后通过DBGRID来输入C和D的值?
    如果是这样的话,你可以先建立一个临时的表,结构就象上边那样,假设你建立的表名叫TEMP,A和B字段的值来自TABLE
    var
     i:integer; //从TABLE表中取出A,B字段的值 
     with adoquery1 do 
       begin
         close;
         sql.clear;
         sql.add('select A,B from TABLE');
         open;
       end;
    //将A,B字段的值插入到临时表TEMP中
     with adoquery2 do 
       begin
        close;
        sql.clear;
        sql.add('select * from TEMP');
        OPEN;
        for i:=0 to adoquery1.recordcount-1 do 
          begin
            append;
            fieldbyname('A').value:=adoquery1.fieldbyname('A').value;
            fieldbyname('B').value:=adoquery1.fieldbyname('B').value; 
            post;  
          end;  
       end;C,D字段的值由用户从DBGRID中输入,不知道楼主是不是这个意思?
      

  8.   

    对。就是这个效果,但是象你这样的做法,会把空的行也保存进去的。而且,A,B,这样赋值只有一条记录是最的。这个我可以在beforpost里搞定了。
    现在的问题是还要把空的行剔除掉。这样就OK了。谢谢了。
      

  9.   

    空行是什么意思?你是指当TABLE中没有数据的时候?
    那你可以在打开数据集后判断以下是否有数据,再往表里插入
      

  10.   

    我这里的空行是指DBGRID中用户输入的空行,否则保存时一起保存了。