50 多个字段 ?
insert一条记录也够累的
不过写一个子函数出来  一劳永逸
估计顶楼的是写程序烦了  后后

解决方案 »

  1.   

    var
    i:integer;
    begin
        for i:=0 to table1.FieldCount-1 do
            table1.Fields[i].AsString:=edit1.text;
    end;
      

  2.   

    var
    i:integer;
    begin
        for i:=0 to table1.FieldCount-1 do
            table1.Fields[i].AsString:=edit1.text;
                                       ~~~~~~~~~~~这样吗?  
    end;谢谢啦,呵呵,用 Self.ComponentCount?
      

  3.   

    太烦也没办法的,如果字段名有规律的话倒可以用 wsforqyc(大海) (  ) 的方法,我有一个表有100多字段呢:(
      

  4.   

    同意blazingfire(烈焰) 的 ,去找几个好的控件吧!delphi主要是用vcl啊!
      

  5.   

    能的,可以使用存储过程,把表的字段一个一个提取出来,具体你可以看看我发表的文档,http://www.csdn.net/Develop/read_article.asp?id=12654,有类似的做法。如果不明白的地方可以给我发短信息。
    最后谢谢你的生日祝福,谢谢!
      

  6.   

    TO forgot2000(忘记2000年) 
    呵呵,我去看一看:)大家都是做程序的,都是朋友,今天我们为你祝福,明天你就会我们祝福:)
      

  7.   

    按你说的那种方法,的确是可以的,但是,还是有点烦;
    能不能告诉我
    ComponentCount的顺序是按什么走的?
      

  8.   

    如果是同一类型,倒不如用指针来移动如全是TEdit或是什么的
    pEdit: ^TEdit;Edit1: TEdit;
    Edit2: TEdit;
    ....Editn: TEdit;pEdit := @Edit1;
    再作个for就行。
    五十多个写写也无妨
      

  9.   

    错了,应该是TComponent.ComponentIndex
      

  10.   

    TO forgot2000(忘记2000年) 
    是的,Component.ComponentCount的顺序是按ComponentIndex排的,但是Component.Index应该是只读的,我刚刚试了试,它好像是按.dfm里排的,就是说按起时间排的,当然,如果要是改了.dfm的话,它也可以了,这样的话,只要一个for就可以完成这个操作:)
      

  11.   

    TO  Nizvoo(瓦匠泥 钟松风 100%投入中) (  ) 
    可是那还要它的赋之顺序啊,呵呵,当然,肯定不能用FindComponent了,如果用它的话,我还不如就写在数组里边,再者,在程序中,也不可能有Edit1,Edit2,Edit3,Edit4....这样的命名;
      

  12.   

    问题解决了,可以用一个for就做完了,一共是三句吧;
    TO byshaw(不要说爱我) (  ) 信誉:
      同情,建议你用PB,我保存过比你更多的字段的表,达到两百多个字段,
    三两句 就搞掂了
    不过在调整数据窗口时就苦了,两三个小时看样子,delphi也不错啊,呵呵呵; 
     
      

  13.   

    procedure TForm1.SendDataToDB(const Data: TData; TestTy: Integer);
    var
     IntSum,i:integer;
     SQLStr:Ansistring;
     CustomerType,FieldI:integer; {CustomerType: 0:DELL TYPE 1:HP TYPE}
    // aVR: array of TVarRec;
     STable,SBuWu,SRed,SGreen:string;
     IntTemp:Cardinal;
     StrDate:String;
     inif:TiniFile;
     CurDir:String;
    begin  IntSum:=StrToInt(sum.text);
      Inc(IntSum,1);
      sum.text:=IntToStr(IntSum);  CustomerType:=GetCustomerType(Customer.text);  case CustomerType of
          0:
             begin
              STable:='DellType';
              SBuWu:='wx1,wy1,BY1,wx2,wy2,BY2,wx3,wy3,BY3,wx4,wy4,BY4,wx5,wy5,BY5,';
              SRed:='RedX1,RedY1,RedX2,RedY2,RedX3,RedY3,RedX4,RedY4,RedX5,RedY5,';
              SGreen:='GreenX1,GreenY1,GreenX2,GreenY2,GreenX3,GreenY3,GreenX4,GreenY4,GreenX5,GreenY5,';
              FieldI:=5;
             end;
          1:
            begin
              STable:='HpType';
              SBuWu:='';
              SRed:='';
              SGreen:='';
              FieldI:=0;
            end
          else
            begin
              ShowMessage('请确认此客户属于DELL类还是HP类?');
              exit;
            end;
       end;
       SQLStr:='Insert Into '+STable;
       SQLStr:=SQLStr+'(riqi,Line,Model,Crt,Customer,Station,CurSum,';
       SQLStr:=SQLStr+'wx,wy,Bu,'+SBuWu;
       SQLStr:=SQLStr+'RedX,RedY,'+SRed;
       SQLStr:=SQLStr+'GreenX,GreenY,';
       SQLStr:=SQLStr+SGreen;
       SQLStr:=SQLStr+'CutoffBY,WhiteBY,WindowBY,' ;
       SQLStr:=SQLStr+'RasterBY,WBalance93x,WBalance93y,WBalance65x,WBalance65y)' ;
       SQLStr:=SQLStr+' Values(';    for   i:=0 to   5 do
          SQLStr:=SQLStr+'''%s''' + ',';    SQLStr:=SQLStr+'''%d''' + ',';    for   i:=0 to   FieldI  do
          SQLStr:=SQLStr+ '''%d''' + ',' + '''%d''' + ','+'''%4.1f''' + ',';
        for   i:=0 to   FieldI do
          SQLStr:=SQLStr+ '''%d''' + ',' + '''%d''' + ',';    for   i:=0 to   FieldI do
          SQLStr:=SQLStr+ '''%d''' + ',' + '''%d''' + ',';    for   i:=0 to   3 do
          SQLStr:=SQLStr+ '''%4.1f''' + ',';    for   i:=0 to   1 do
          SQLStr:=SQLStr+ '''%d''' + ',' +'''%d''' + ',';    SQLStr:=StuffString(SQLStr,Length(SQLStr),1,')');  try
        StrDate:=DateTimeToStr(Now);
        if copy(StrDate,1,2)<>'20' then
              StrDate:='20'+StrDate;
        case CustomerType of
        0:   {DELL}
          SQLStr:=Format(SQLStr,[StrDate,Line.Text,Model.Text,Crt.text,
             Customer.text,Station.text,StrToInt(sum.text)
            ,Data.BuWuRG[1][0].x,Data.BuWuRG[1][0].y,Data.BuWuRG[1][0].dy
            ,Data.BuWuRG[1][1].x,Data.BuWuRG[1][1].y,Data.BuWuRG[1][1].dy
            ,Data.BuWuRG[1][2].x,Data.BuWuRG[1][2].y,Data.BuWuRG[1][2].dy
            ,Data.BuWuRG[1][3].x,Data.BuWuRG[1][3].y,Data.BuWuRG[1][3].dy
            ,Data.BuWuRG[1][4].x,Data.BuWuRG[1][4].y,Data.BuWuRG[1][4].dy
            ,Data.BuWuRG[1][5].x,Data.BuWuRG[1][5].y,Data.BuWuRG[1][5].dy
            ,Data.BuWuRG[2][0].x,Data.BuWuRG[2][0].y
            ,Data.BuWuRG[2][1].x,Data.BuWuRG[2][1].y
            ,Data.BuWuRG[2][2].x,Data.BuWuRG[2][2].y
            ,Data.BuWuRG[2][3].x,Data.BuWuRG[2][3].y
            ,Data.BuWuRG[2][4].x,Data.BuWuRG[2][4].y
            ,Data.BuWuRG[2][5].x,Data.BuWuRG[2][5].y
            ,Data.BuWuRG[3][0].x,Data.BuWuRG[3][0].y
            ,Data.BuWuRG[3][1].x,Data.BuWuRG[3][1].y
            ,Data.BuWuRG[3][2].x,Data.BuWuRG[3][2].y
            ,Data.BuWuRG[3][3].x,Data.BuWuRG[3][3].y
            ,Data.BuWuRG[3][4].x,Data.BuWuRG[3][4].y
            ,Data.BuWuRG[3][5].x,Data.BuWuRG[3][5].y
            ,Data.dy[4],Data.dy[5],Data.dy[6],Data.dy[7]
            ,Data.BalanceW[8,0],Data.BalanceW[8,1],Data.BalanceW[9,0],Data.BalanceW[9,1]
             ]);
          1: {HP}
           SQLStr:=Format(SQLStr,[StrDate,Line.Text,Model.Text,Crt.text,
             Customer.text,Station.text,StrToInt(sum.text)
            ,Data.BuWuRG[1][0].x,Data.BuWuRG[1][0].y,Data.BuWuRG[1][0].dy
            ,Data.BuWuRG[2][0].x,Data.BuWuRG[2][0].y
            ,Data.BuWuRG[3][0].x,Data.BuWuRG[3][0].y
            ,Data.dy[4],Data.dy[5],Data.dy[6],Data.dy[7]
            ,Data.BalanceW[8,0],Data.BalanceW[8,1],Data.BalanceW[9,0],Data.BalanceW[9,1]
             ])
         else
          exit;
        end;
        MyThread:=TDataToDBThread.Create(false,SQLStr);
        MyThread.WaitFor ;
        MyThread.Free;
    **
    **
    ---------------------------
    我写的一个,好像也是50几个字段...用这种方法...不知有没有更好的?