写了个存储过程往数据库插入数据
adoquery3.Close;
adoquery3.SQL.Clear;
ADOQuery3.SQL.add('create procedure proc2');
ADOQuery3.SQL.Add('@SmsUser char(20),');
ADOQuery3.SQL.Add('@SmsTime  char(20),');
adoquery3.SQL.Add('@SendNumber char(20),');
ADOQuery3.SQL.Add('@SmsContent char(250)');
adoquery3.SQL.Add('as');
ADOQuery3.SQL.Add('insert into jsdx(jsdxhfsjhm,jsdxhfnr,jsdxsj)values(@SendNumber,@SmsContent,@Smstime)
where jsdx.kfglid like (select kfglid from kfgl where kfgldl=@SmsUser)');//为什么提示这行的关键字where附近有语法错误
ADOQuery3.ExecSQL;

解决方案 »

  1.   

    where jsdx.kfglid like (select kfglid from kfgl where kfgldl=@SmsUser)');//为什么提示这行的关键字where附近有语法错误
      

  2.   

    逻辑关系比较复杂,
    select kfglid from kfgl where kfgldl=@SmsUserkfglid与kfgldl不一样。
      

  3.   

    sql语法好像有问题,应该写成这样吧Create Procedure  AS
    Insert Into  Values 
    Select  /*少了这行*/
    From    /*少了这行*/
    Where  Like (Select )
      

  4.   

    'insert into jsdx(jsdxhfsjhm,jsdxhfnr,jsdxsj)values(@SendNumber,@SmsContent,@Smstime) 
    where jsdx.kfglid like (select kfglid from kfgl where kfgldl=@SmsUser)'
    你先看看SQL语句有这样的语句吗?
    在一个已存在的表中插入数据有两种方式:
    1. insert into TableName(Field1,Field2,...)values(Value1,Value2,...)
    2. insert into TableName(Field1,Field2,...)
       select Field1,Field2,... from Table2 where id=x