SQL SERVER有表
test1(c1 char,c2 datetime)
在dephi中用ADOQuery控件绑定参数向表中插入一行数据
procedure TForm1.Button1Click(Sender: TObject);
begin
   with ADOQuery1 do
   begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('INSERT INTO test1(c1, c2)');
      ADOQuery1.SQL.Add('VALUES(:CC,:D)');
      ADOQuery1.Parameters.ParamByName('CC').Value:='sdf';
      ADOQuery1.Parameters.ParamByName('D').Value:=StrToDateTime('2002-12-12');
      ADOQuery1.ExecSQL;
   end
end;
发现老是报错:没有执行可选特性
初学dephi,请各位大侠指教

解决方案 »

  1.   

    ADOQuery1.SQL.Add('INSERT INTO test1(c1, c2)');
          ADOQuery1.SQL.Add('VALUES(:CC,:D)');
    改下,
      

  2.   

    语法没错啊,我把datetime类型换成其他类型绑定就可以了
    就是datetime类型不行
      

  3.   

    你改成这样的可以吗?或者把你数据库中第一个字段的类型改成nvchar(50)
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       with ADOQuery1 do
       begin
          sql.close;
          sql.Clear;
          sql.Add('INSERT INTO test1(c1, c2)'VALUES(:CC,:D)');
          Parameters.ParamByName('CC').Value:='sdf';
          Parameters.ParamByName('D').Value:=StrToDateTime('2002-12-12');
          ExecSQL;
       end
    end;
      

  4.   

    test1(c1 char,c2 datetime)不关第一个字段的问题
    Parameters.ParamByName('D').Value:=StrToDateTime('2002-12-12');
    这个地方报错,把datetime类型改成其他类型绑定就可以了
      

  5.   

    你把Parameters.ParamByName('D').Value:=StrToDateTime('2002-12-12')这句改为
    Parameters.ParamByName('D').Value:='2002-12-12';试试
      

  6.   


    Parameters.ParamByName('D').DataType := ftDate;
    Parameters.ParamByName('D').Value:=StrToDateTime('2002-12-12');这样试试!!!!!
      

  7.   


    test1(c1 char,c2 datetime)
    c2是datetime类型Parameters.ParamByName('D').DataType := ftDate;
    这样我也试过了,还是不行