with ADOQuery1 do
  begin
    close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('select * from Table1');
    ADOQuery1.Open;    
    ADOQuery1.First;
 
    while(not eof) do
    begin  
  
      Application.ProcessMessages;
      with ADOQuery2 do
       begin
       close;
       ADOQuery2.SQL.Clear;
       SQLstr:='insert into Table2(A1,CSRQ)  values(';
       SQLstr:=SQLstr+'''';
       SQLstr:=SQLstr+ADOQuery1.FieldByName('B1').AsString;
       SQLstr:=SQLstr+'''';
       SQLstr:=SQLstr+',';
       SQLstr:=SQLstr+'''';
       SQLstr:=SQLstr+DatetoStr(shortdateformat(ADOQuery1.FieldByName('B2').AsString));
       SQLstr:=SQLstr+'''';
       SQLstr:=SQLstr+')';
       //showmessage(SQLstr);
       ADOQuery2.SQL.Add(SQLstr);
       ADOQuery2.ExecSQL;
       end;    ADOQuery1.Next; 
这段代码的作用是取出表Table1中的B1,B2字段并且插入表Table2中。现在问题在于B2为datetime型,而CSRQ为varchar型。例如:B2: 2002-8-12
      想实现写入Table2中的CSRQ的值为 20020812这时候程序报错:
[Error] UnitMain.pas(570): Missing operator or semicolon
[Error] UnitMain.pas(570): Incompatible types: 'TDateTime' and 'String'570行应该就是这句:
SQLstr:=SQLstr+DatetoStr(shortdateformat(ADOQuery1.FieldByName('B2').AsString));我改成
SQLstr:=SQLstr+formatdatetime('yyyymmdd',ADOQuery1.FieldByName('B2').AsString);还是抱同样的错误。请教各位大虾这句话到底该怎么写。感谢!