procedure Tfrmdatabasechange.BitBtn1Click(Sender: TObject);
var i:integer;
    x,w,y:string;
    addtax:real;
    z:string;begin
  query1.Active:=true;
  if query1.RecordCount=0 then
    begin
      showmessage('没有数据,不能转换');
      application.Terminate;
    end;
  query1.First;
  for i:=0 to query1.RecordCount-1 do
    begin
      x:=query1.Fields[0].AsString;
      w:=query1.Fields[1].AsString;
      y:=query1.Fields[2].AsString;
      z:=datetimetostr(query1.Fields[3].AsDateTime);      addtax:=0;      query2.Active:=false;
      query2.SQL.Clear;
      query2.SQL.Add('insert into area(country,typedesc,addtax,rec_user,rec_date)');
      query2.SQL.Add('value ('''+x+''','''+w+''','+floattostr(addtax)+','''+y+''','+z+')');
      query2.ExecSQL;      query1.Next;
    end;
end;

解决方案 »

  1.   

    试试query2.SQL.Add('value ('''+x+''','''+w+''','+floattostr(addtax)+','''+y+''','''+z+''')');
      

  2.   

    query2.SQL.Add('values ('''+x+''','''+w+''','+floattostr(addtax)+','''+y+''','''+z+''')');
                 如果是Access
    query2.SQL.Add('value ('''+x+''','''+w+''','+floattostr(addtax)+','''+y+''',#'+z+'#)');
      

  3.   

    你多了query1.Next;这一句.
    你最好用那个循环.
       query1.first;
       While not query1.Eof do
       begin
          x:=query1.Fields[0].AsString;
          w:=query1.Fields[1].AsString;
          y:=query1.Fields[2].AsString;
          z:=datetimetostr(query1.Fields[3].AsDateTime);      addtax:=0;      query2.Active:=false;
          query2.SQL.Clear;
          query2.SQL.Add('insert into area(country,typedesc,addtax,rec_user,rec_date)');
          query2.SQL.Add('value ('''+x+''','''+w+''','+floattostr(addtax)+','''+y+''','+z+')');
          query2.ExecSQL;      query1.Next;
       end;
      

  4.   

    try to change 
    query2.SQL.Add('value ('''+x+''','''+w+''','+floattostr(addtax)+','''+y+''','+z+')');
    to 
    query2.SQL.Add('value ('''+x+''','''+w+''','''+floattostr(addtax)+''','''+y+''','''+z+''')');
      

  5.   

    试试:     
       z := DataToStr(query1.Fields[3].AsDateTime);   query2.SQL.Add('insert into area(country,typedesc,addtax,rec_user,rec_date)');
       query2.SQL.Add('value ('''+x+''','''+w+''','+floattostr(addtax)+','''+y+''',#'+z+'#)');