exec method
Quick execution of sql query without holding any statment object.
Implementation
@override
Future<sql.Changes> exec(String sql, {Iterable<dynamic>? parameters}) async {
if (parameters != null && parameters.isNotEmpty) {
final stmt = (await prepare(sql)).write();
return await stmt.exec(parameters: parameters, reusable: false);
} else {
final errmsg = sqlite.malloc<sqlite.Pointer<sqlite.Utf8>>();
final resultCode = Driver.binder.exec(_db!, sql, sqlite.nullptr, sqlite.nullptr, errmsg);
if ((errmsg.value != sqlite.nullptr || errmsg.value.address != 0) &&
resultCode != sqlite.OK) {
final msg = errmsg.value.toDartString();
sqlite.free(errmsg);
throw SQLiteException(cdb: _db!, message: msg, returnCode: resultCode);
}
sqlite.free(errmsg);
return Changes._(this);
}
}