系统老是提示第一行附近有语法错误,究竟是怎么回事啊??代码如下:
with adoquery1 do
       begin
         close;
         sql.Clear;
         sql.Add('insert into'+tablename+'values(:createdate,:title,:weather,:riji)');
         parameters.ParamByName('createdate').Value:=label2.Caption;
         parameters.ParamByName('title').Value:=trim(edit2.Text);
         parameters.ParamByName('weather').Value:=trim(edit1.Text);
         parameters.ParamByName('riji').Value:=memo1.Text;
         execsql;
       end;
错误提示后有一个兰色的条在倒数第二行那,就是execsql那一行。

解决方案 »

  1.   

    你把SQL语句弄出来,然后看看 insert into .....具体是什么样子的,然后把相关参数值赋进去,看看具体哪出错.
    还有createdate对应的字段是什么类型的,在oracle中如果是日期型的,需要strtodate一下.
      

  2.   


    下面sql语句缺少空格,而且缺少插入字段
    sql.Add('insert into'+tablename+'values(:createdate,:title,:weather,:riji)'); 
    修改
    sql.Add('insert into '+tablename+'(字段1,字段2,字段3,字段4) values(:createdate,:title,:weather,:riji)'); 
      

  3.   

    with adoquery1 do 
          begin 
            close; 
            sql.Clear; 
            sql.Add('insert into'+tablename+'values(:createdate,:title,:weather,:riji)'); 
            parameters.ParamByName('createdate').Value:=label2.Caption; 
            parameters.ParamByName('title').Value:=trim(edit2.Text); 
            parameters.ParamByName('weather').Value:=trim(edit1.Text); 
            parameters.ParamByName('riji').Value:=memo1.Text; 
             Showmessage(adoquery1.SQL.Text);//看看你的语句有没有问题,在sql server上执行一下
            //execsql; 
          end; 
      

  4.   

    sql.Add('insert into'+tablename+'values(:createdate,:title,:weather,:riji)');
    改成 sql.Add('insert into tablename (createdate,title,weather,riji)values(:createdate,:title,:weather,:riji)');
      

  5.   

    在监视器下面监控sql.sql.text,抽出来看看就知道了
      

  6.   

    'insert into'这里没有空格,就会把表名连在一起了,当然会出错了啊
    SQL.ADD('insert into ' +.......