exec method
Executes a query such as INSERT or UPDATE with or without parameter.
Implementation
@override
Future<sql.Changes> exec({Iterable<dynamic>? parameters, bool reusable = false}) async {
Statement._ensureStatementAndDatabaseOpen(this);
// bind parameter is available
if (parameters != null && parameters.isNotEmpty || parameterCount > 0) {
Statement._bindParameters(this, parameters);
}
int resultCode;
do {
resultCode = Driver.binder.step(_stmt!);
} while (resultCode == sqlite.ROW || resultCode == sqlite.OK);
_initState = false;
// something wrong
if (resultCode != sqlite.DONE) {
// close right away when user specified once
close();
throw SQLiteException(cdb: _db._db!, returnCode: resultCode);
} else if (!reusable) {
close();
}
return Changes._(_db);
}