我想从零时表中报数据放到实际表中去,
 ADOQuery1.Close;        
     ADOQuery1.SQL.Clear;
     s:='insert into a01t selete * from a01';
     ADOQuery1.SQL.Add(s);
     ADOQuery1.open;
调试的时候告诉我语法错误,该怎么写啊,谢谢了。

解决方案 »

  1.   

    最后一句不要用Open;用ExecSQL
    ADOQuery1.execsql;
      

  2.   

    ADOQuery1.Close;        
     ADOQuery1.SQL.Clear;
     s:='insert into a01t selete * from a01';
     ADOQuery1.SQL.Add(s);
     ADOQuery1.execsql; 
    有返回结果集用Open或Active:=True;,没有返回结果集的话就用ExecSql.
      

  3.   

    调试的时候告诉我语法错误,该怎么写啊
    ---------------
     selete --》select (主要错误)------------------ADOQuery1.open; (执行没有问题,不过系统不会返回数据集的)-----------ADOQuery1.Execsql;
      

  4.   

    结贴 sanmaotuo(老冯) (100)、
      

  5.   

    SQL语句算是正确的,出错的话,有几种可能:1.你的数据库是什么数据库呀?出错的具体提示是什么呀?
    在CSDN提问就要注意把这你基本的情况说清楚,否则别人没有办法帮你分析的.2.从临时表,写入直入实际表;
    按照你表的起名,a01t是临时表,a01是实际表? 是这样吧但你的SQL语句中,a01t是实插入是表,而a01是源数据表,是不是反过来了?insert to 目的表 select * from 源表
      

  6.   

    我一开始用的就是
     ADOQuery1.Close;        //删除直接增加到库里的数据
         ADOQuery1.SQL.Clear;
         s:='insert into a02t selete * from a02';
         ADOQuery1.SQL.Add(s);
         ADOQuery1.ExecSQL;
    报语法错误,我才改成open的,到底是什么原因呢?
      

  7.   

    还有1楼所说的"select" 用AdoQuery.Open;
    "insert,delete,update" 用AdoQuery.ExecSQL;
      

  8.   

    没有反过来,我用的是access,a01t是真实表,临时表示a01,对应关系没有错。
      

  9.   

    有insert的SQL语句,用open来执行,肯定是错误的
      

  10.   

    具体错误是“insert into 语句的语法错误”
      

  11.   

    >>a01t是真实表,临时表示a01那要注意,INSERT  INTO  TABLE1  SELECT  *  FROM  TABLE2 时,要求TABLE1和TABLE2的结构要一样。  
    否则,你就要在两个表中都要写出字段。另外要注意,如果TABLE2 中有和table1一样的记录,但是Table1又有关键字时,记录插不进去的
      

  12.   

    有自动编号的话,就不要用select * 吧,除了自动编号外,把其它的字段都一个一个写出来insert into a01t(字段1,字段2) selete 字段1,字段2 from a01