procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery2.SQL.Add('insert into wanchengyewu select * from yewu where  id=1');
adoquery2.ExecSQL;
adoquery1.SQL.Add('delete from yewu where id=1');
adoquery1.ExecSQL;
end;
end.我这么写的,它说我是FROM子句语法错误
我打包了
http://guanggaoren.com/test/test.exe相关帖子
http://expert.csdn.net/Expert/topic/1309/1309456.xml?temp=.3520319

解决方案 »

  1.   

    adoquery2.SQL.clear
    adoquery1.SQL.clear先
    有吗?
    否则不会出错的啊
      

  2.   

    应该先close然后sql.clear,这样就绝对不会出错了
      

  3.   

    两个表都是有自增长ID的,insert语句不能那样写,必须把字段都对应上。
    具体的语法参考原来的帖子。
      

  4.   

    很明显就是insert into 写错了啊,这样写你让sql解释器怎么翻译?
      

  5.   

    那楼上的高手,你帮我写个insert into 试试看我是初学,不太明白错在那里
      

  6.   

    'insert into wanchengyewu select * from yewu where  id=1'?
    象你这样写的话,wanchengyewu和yewu这两个表的字段个数要一样、类型要兼容
    且要一一对应,如果含有自增加类型的字段,就不能这样写。要这样写:
    insert into wanchengyewu(Field1,Field2,Field3) selelct Field1,field2
    ,field3 from yewu where id=1上面的几个字段要一一对应,类型要兼容。还有就是 调用adoquery.sql.add之前先要Clear
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    adoquery2.close;
    adoquery2.sql.clear;
    adoquery2.SQL.Add('insert into wanchengyewu(id,jiedanren) selelct id,jiedanren from yewu where id=1');
    adoquery2.ExecSQL;
    adoquery1.close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('delete from yewu where id=1');
    adoquery1.ExecSQL;
    end;
    end.
    还是不对:(
      

  8.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    adoquery2.close;
    adoquery2.sql.clear;
    adoquery2.SQL.Add('insert into wanchengyewu(id,jiedanren) (selelct id,jiedanren from yewu where id=1)');
    adoquery2.ExecSQL;
    adoquery1.close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('delete from yewu where id=1');
    adoquery1.ExecSQL;
    end;
    end.
    and u try
      

  9.   

    说这么半天,什么数据库呀,有些数据库不支持
    insert into ... select ... 语句的倡议一下:
       在数据库版,提问的时候说明是什么数据库好不好?!更不要在没有说清楚问题的情况下满世界找高手,高手就是你自己。
       既方便解答的人判断,也加快你自己的问题的解决!
      

  10.   

    难兄难弟,如果你用的是paradox,跟本就不认识select中的into,哈哈,我为此苦恼了很久
      

  11.   

    别老埋怨别人,你应该好好看看delphi帮助中的例子,很有用的。
      

  12.   

    我装的盗板里面没有DEMO的你叫我怎么看啊:(
    是ACCESS,mdb数据库
      

  13.   

    问题是很简单,可还是没人能解决掉,我上面已经把程序打包了http://guanggaoren.com/test/test.exe
      

  14.   

    兄弟,wanchengyewu表字段ID是自增字段,不能那样写的,如果你要id值和yewu表的完全一样,那将wanchengyewu表的字段ID改为整型的,如果不要求,可以这么写:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    adoquery2.close;
    adoquery2.sql.clear;
    adoquery2.SQL.Add('insert into wanchengyewu(jiedanren) (selelct jiedanren from yewu where id=1)');
    adoquery2.ExecSQL;
    adoquery1.close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('delete from yewu where id=1');
    adoquery1.ExecSQL;
    end;
      

  15.   

    猪头呀,还是先学习sql语句怎么写吧,
    insert into table [(field1...fieldn)] values .....
      

  16.   

    楼上的大哥们,你们看过我的代码吗,都说insert into 语法不对
      

  17.   

    我还是用TBATCHMOVE解决这个问题算了
      

  18.   

    access,你的语法是对的,应该是自增自段的问题,试一下TOMWLD(笑天) 的语句。
      

  19.   

    1、如果含有自增加类型的字段,就不能这样写。2、猪头呀,还是先学习sql语句怎么写吧,
    insert into table [(field1...fieldn)] values .....
      

  20.   

    'delete from yewu where id=1'
    ->
    'delete yewu where id=1'
      

  21.   

    原来你用的是Access呀,Access好像是不支持 
    insert into .........selelct ..... from .... where  .......
    这种格式的拉