Query_dsp.SQL.Add
('INSERT  INTO User (ID,SendDic,UpdateDate) 
VALUES 
(i,1,GETDATE())');如果我想给字段ID赋一个变量i该怎么做,我已定义了i是integer,也定了初值,一执行就出错,是否这条语句里i只能是常量。

解决方案 »

  1.   

    str_sql:='INSERT  INTO User (ID,SendDic,UpdateDate) VALUES (';
    str_sql:=str_sql+inttostr(i)+',1,'+datetimetostr(GETDATE())+')';
    Query_dsp.SQL.text:=str_sql;变量和sql语句不能直接这样写在一起,你试试上边的语句
      

  2.   

    改i为inttostr(i)
      GETDATE()为datetimetostr(GETDATE()
      

  3.   

    Query_dsp.SQL.Add
    ('INSERT  INTO User (ID,SendDic,UpdateDate) 
    VALUES 
    (:ivalue,1,GETDATE())');
    ParamByName('ivalue').asintger:=i;
    query_dsp.execsql;
      

  4.   

    还是不行,说“[SQL SERVER]上下文不允许使用‘i’,只允许使用常量、表达式或变量,不允许使用列名”,昏 怎么回事呢
      

  5.   

    Query_dsp.SQL.Add
    ('INSERT  INTO User (ID,SendDic,UpdateDate) 
    VALUES 
    (:ivalue,1,GETDATE())');
    ParamByName('ivalue').asinteger:=i;
    query_dsp.execsql;
      

  6.   

    Query_dsp.Close;
    Query_dsp.SQL.Clear;
    Query_dsp.SQL.Add('INSERT  INTO User (ID,SendDic,UpdateDate) VALUES( '+inttostr(i)+'1,'+datetostr(GETDATE()));
    try
      Query_dsp.ExecSQL;
    except
      
    end;