// Executes a statement and returns whether there is more data available. internal bool ExecuteStatement(IntPtr pStmt, out int cols, out IntPtr pazValue, out IntPtr pazColName) { SqliteError err; //if (parent_conn.Version == 3) //{ err = (SqliteError)Sqlite3.Step(pStmt); if (err == SqliteError.ERROR) { throw new SqliteExecutionException(GetError3()); } pazValue = IntPtr.Zero; pazColName = IntPtr.Zero; // not used for v=3 cols = Sqlite3.ColumnCount(pStmt); /* * } * else * { * err = (SqliteError)Sqlite3.Step(pStmt, out cols, out pazValue, out pazColName); * if (err == SqliteError.ERROR) * throw new SqliteExecutionException (); * } */ if (err == SqliteError.BUSY) { throw new SqliteBusyException(); } if (err == SqliteError.MISUSE) { throw new SqliteExecutionException(); } // err is either ROW or DONE. return(err == SqliteError.ROW); }