我要完成一个插入操作,在屏幕上输入edit1,edit2,edit3,edit4中的值,存入数据库中的表"排列3"中,屏幕上只有一个query1的连接.代码如下:
var
    str:string;
begin
    str:='insert into 排列3 values('''+Edit1.Text+''','''+Edit2.Text+''','''+Edit3.Text+''','''+Edit4.Text+''')';
    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Text :=str;
end;唉,运行时居然会报"Error creating cursor handle"这个错误,我已经检查过表"排列3"中的值了,上面的数值还是插入了表中的,但就要报这个错.各位高手,帮帮忙啊!!!!谢谢谢了

解决方案 »

  1.   

    这个错误可能是数据库报过来的。cursor是游标。
      

  2.   

    var
        str:string;
    begin
        str:='insert into 排列3 values('''+Edit1.Text+''','''+Edit2.Text+''','''+Edit3.Text+''','''+Edit4.Text+''')';
        query1.Close;
        query1.SQL.Clear;
        query1.SQL.Text :=str;
        query1.SQL.Active :=True;//////就在此处报错
    end;
      

  3.   

    query1.SQL.Active :=True;//////就在此处报错
     这行去掉不要,只有返回数据集时才用到
      

  4.   

    Execsql和query1.SQL.Active 的区别我到现在还是没有很弄清楚~
      

  5.   

    query1.SQL.Active 等同于 Query1.Open
    ExceSql不返回数据集
      

  6.   

    query1.SQL.Active 应为 query1.Active:=true 等同于 Query1.Open
    query1.Active:=flase 等同于 Query1.Close
      

  7.   

    执行无反回值的语句时请用ExceSql,反之请用OPen