query method
Implementation
Future<List<Map<String, dynamic>>> query(String sql, [List<dynamic>? parameters]) async {
if (_db == null) {
throw const FlutterSqliteException('Database not open');
}
try {
final result = js_util.callMethod(_db, 'exec', [sql, parameters ?? []]);
final List<dynamic> rows = js_util.getProperty(result, 'rows');
return rows.map((row) {
final Map<String, dynamic> rowMap = {};
final keys = js_util.getProperty(row, 'keys') as List<dynamic>;
final values = js_util.getProperty(row, 'values') as List<dynamic>;
for (int i = 0; i < keys.length; i++) {
rowMap[keys[i] as String] = values[i];
}
return rowMap;
}).toList();
} catch (e) {
throw FlutterSqliteException('Failed to execute query: $e');
}
}