我使用SQL server数据库,用ADOquery控件进行操作,现在要向数据库中插入记录时程序报错“ODBC sqlserver 没有执行可选择特性”,请问是什么原因产生的错误?程序对应部分的代码如下,单步到adoquery1.ExecSQL ;时报错:adoquery1.Close;
adoquery1.SQL.Clear ;  
adoquery1.SQL.Add('insert into main(customname,sex,age,address,phone,mail,orders,orderdate) values(:customname,:sex,:age,:address,:phone,:mail,:orders,:orderdate)');
adoquery1.Parameters[0].Value:=edit1.Text ;
adoquery1.Parameters[1].Value:=edit2.Text ;
adoquery1.Parameters[2].Value:=edit3.Text ;
adoquery1.Parameters[3].Value:=edit4.Text ;
adoquery1.Parameters[4].Value:=edit5.Text ;
adoquery1.Parameters[5].Value:=edit6.Text ;
adoquery1.Parameters[6].Value:=combobox1.Text;
adoquery1.Parameters[7].Value:=datetimepicker1.Date ;
adoquery1.Prepared;
adoquery1.ExecSQL ;

解决方案 »

  1.   

    但是在程序中select语句使用是正常的啊
      

  2.   

    adoquery1.Close;
    adoquery1.SQL.Clear ;  
    adoquery1.Parameters[0].Value:=edit1.Text ;
    adoquery1.Parameters[1].Value:=edit2.Text ;
    adoquery1.Parameters[2].Value:=edit3.Text ;
    adoquery1.Parameters[3].Value:=edit4.Text ;
    adoquery1.Parameters[4].Value:=edit5.Text ;
    adoquery1.Parameters[5].Value:=edit6.Text ;
    adoquery1.Parameters[6].Value:=combobox1.Text;
    adoquery1.Parameters[7].Value:=datetimepicker1.Date ;
    adoquery1.SQL.Add('insert into main(customname,sex,age,address,phone,mail,orders,orderdate) values(:customname,:sex,:age,:address,:phone,:mail,:orders,:orderdate)');
    adoquery1.Prepared;
    adoquery1.ExecSQL ;
      

  3.   

    sysadminofqyu,你是说add语句的位置有关系吗?
    还有,“ODBC sqlserver 没有执行可选择特性”是什么原因产生的呢?
      

  4.   

    adoquery1.Close;
    adoquery1.SQL.Clear ;  
    adoquery1.SQL.Add('insert into main(customname,sex,age,address,phone,mail,orders,orderdate) values('''+ edit1.Text ''',' + edit2.Text + 
    ''',' + edit3.Text + 
    ''',' + edit4.Text + 
    ''',' + edit5.Text + 
    ''',' + edit6.Text + 
    ''',' + combobox1.Text + 
    ''',' + DateToStr(datetimepicker1.Date +
    ''')'
    adoquery1.Prepared;
    adoquery1.ExecSQL ;可能是sql不能得到正确的字段属性信息而进行相应的转换吧。
      

  5.   

    试试:
    adoquery1.Close;
    adoquery1.SQL.Clear ;  
    adoquery1.SQL.Add('insert into main(customname,sex,age,address,phone,mail,orders,orderdate) values('''+ edit1.Text ''',' + edit2.Text + 
    ''',' + edit3.Text + 
    ''',' + edit4.Text + 
    ''',' + edit5.Text + 
    ''',' + edit6.Text + 
    ''',' + combobox1.Text + 
    ''',' + DateToStr(datetimepicker1.Date )+
    ''')'
    adoquery1.Prepared;
    adoquery1.ExecSQL ;
      

  6.   

    试试:adoquery1.Parameters[7].DateType:=ftDateTime ;
    adoquery1.Parameters[7].Value:=datetimepicker1.Date ;