Query1.Close;
Query1.Sql.Clear;
a := 'Insert Into Test.db (字段1,字段2,字段3) Values (Val1,Val2,Val3)';
Query1.Sql.Add(a);
Query1.Open;能够添加到数据库,但是提示出错。出错信息如下:
Error
    Project psmacro.exe Raised exception class ENoResultSet with message 'Error Creating Cursor Handle'.process Stopped.Use Setp or Run to Continue.请问是什么原因呢?谢谢!

解决方案 »

  1.   

    Query1.Close;
    Query1.Sql.Clear;
    a := 'Insert Into Test.db (字段1,字段2,字段3) Values (Val1,Val2,Val3)';
    Query1.Sql.Add(a);
    //Query1.Open;
    Query1.ExecSQL;
    对于 Insert,update,delete等这些不返回结果集的不能用Open执行,要用ExecSQL
      

  2.   

    Query1.ExecSQL;
    哈哈。是的是的。这句是执行SQL语句的意思。你那句是打开表而已。
      

  3.   

    execsql执行SQL不返回结果集的语句
      

  4.   

    同意!没有返回结果的要用execsql实现的 有返回结果的像select就是用open实现
      

  5.   

    Query1.Close;
    Query1.Sql.Clear;
    a := 'Insert Into Test.db (字段1,字段2,字段3) Values (Val1,Val2,Val3)';
    Query1.Sql.Add(a);
    Query1.ExecSql;
      

  6.   

    执行select 的时候用query1.open 。执行insert、delete、update的时候用query1.execsql
      

  7.   

    open, execsql 是不同的哦。