我是想将AllMember表(字段Fnumeric,stuNo,sex,Fgroup,Fclass,Fgrade,Fmajor,Fmaster,studytype,text1,text2,text3)中的数据(注:这些字段在AllMember表都是有数据的)  插入到
SignResult表(字段Fnumeric,stuNo,sex,Fgroup,Fclass,Fgrade,Fmajor,Fmaster,studytype,text1,text2,text3)中。
其中假如SignResult表的其他字段(cardnum,name,datetime)已经有10个数据记录值了,而上述要求字段值为空。SQL的语句 insert into SignResult(Fnumeric,stuNo,sex,...) value(value1,value2,value3,...)
因为两个表都有大量数据记录,不可能将所有值都具体列出来,所以我用
value1用ADAllMember.FieldByName('Fnumeric').Value等,value2,...,以此类推。
编译时报错,请问大侠如何写将AllMember表的这些数据插入到SignResult表中? insert语句应该怎么写?

解决方案 »

  1.   

    用insert into select来插入啊
    比如:
    insert into SignResult(Fnumeric, stuNo,.......) select Fnumeric,stuNo,sex,.... from AllMember 
      

  2.   

    楼主:报什么错?
    你的思路好像没问题。
    with ADSAir do
      begin
        Close;
        CommandText := SQLAirRefund; //查询的SQL语句,所有要导入的数据
        Open;
       
        First;
        InitProgress(ADSAir.Recordset.RecordCount);
        J := 1;
        while not Eof do
        begin
          FieldName1:= '';
          FieldName2 := '';
          FieldName3 := '';
          
          FieldName1 := Trim(ADSAir.FieldByName('FieldName1').AsString);
          FieldName2 := trim(ADSAir.FieldByName('FieldName2').AsString);
          FieldName3 := trim(ADSAir.FieldByName('FieldName3').AsString);      SQLInsert := ' Insert into tbl(FieldName1,FieldName2,FieldName3) values('''+trim(FieldName1)+''','''+trim(FieldName2)+''', '''+trim(FieldName3)+''')  ';        try
              with ADOCmd do
              begin
                CommandText := SQLInsert;
                Execute;
              end;
            except
              on E: Exception do
              begin
                SaveDIYLog(E.Message,'err.txt',True);
                SaveDIYLog(SQLInsert,'err.txt',True); 
              end;
            end;
          end;
          J := J +1;
        Next;
        end;
      end;  
      

  3.   

    我昨天用另外一种方法实现我想要的效果,用判断字段值cardnum之后就AppendRecord。谢谢各位大侠的!
      

  4.   

    再请问 lzg827 (小刚) 及诸位大侠一个关于Excel导入的问题。比如我有一个Excel文档,里面有1000行,但是只有50行是有数据的。
    我在导入Excel时,并非是导入到第50行,就结束了,而是连空白行也一起导进去?
    这是何原因?
    还请各位不吝赐教。    for i := 3 to sheet.usedrange.rows.count do
        begin
          ManageData.ADAllMember.Append;
          for j := 1 to sheet.usedrange.columns.count do
          begin
            if J > Length(arrField) then Break;
            temp := sheet.cells[i, j].value;
        ManageData.ADAllMember.FieldByName(arrField[J - 1].FieldName).AsString := t  emp;
          end;
          //进度条
          inc(ProgressValue);
          Application.ProcessMessages;
          ProgressBar1.Position := ProgressValue;
        end;
        ManageData.ADAllMember.Post;
        exls.quit;