/// <summary> Sqlite 3 step. </summary> /// <exception cref="ArgumentNullException"> Thrown when one or more required arguments are null. </exception> /// <param name="stmt"> The statement. </param> /// <returns> A SqliteResultCode. </returns> internal SqliteResultCode sqlite3_step(SqliteStatementHandle stmt) { if (stmt == null) { throw new ArgumentNullException(nameof(stmt)); } lock (_stepLocker) { stmt.CheckMaintenanceMode(); return((SqliteResultCode)DbProviderOperations.sqlite3_step(stmt.Statement)); } }
/// <summary> Sqlite 3 step return rowid. </summary> /// <exception cref="ArgumentNullException"> Thrown when one or more required arguments are null. </exception> /// <param name="db"> The database. </param> /// <param name="stmt"> The statement. </param> /// <param name="code"> [out] The code. </param> /// <returns> A long. </returns> internal long sqlite3_step_return_rowid(SqliteDatabaseHandle db, SqliteStatementHandle stmt, out SqliteResultCode code) { if (db == null) { throw new ArgumentNullException(nameof(db)); } if (stmt == null) { throw new ArgumentNullException(nameof(stmt)); } lock (_stepLocker) { stmt.CheckMaintenanceMode(); code = (SqliteResultCode)DbProviderOperations.sqlite3_step(stmt.Statement); return(code.IsSuccessCode() ? DbProviderOperations.sqlite3_last_insert_rowid(stmt.ForMaintenance ? db.MaintenanceDb : db.Db) : -1); } }