@@ -32,9 +32,19 @@ class DatabaseTransactionBase<TABLES extends TablesBase> {
32
32
_assertColumnNames (values);
33
33
final entries = values.entries.toList ();
34
34
final columnList = entries.map ((e) => e.key).join (',' );
35
- final bindList = entries.map ((e) => '@${ e . key }' ).join (',' );
35
+ final bindList = entries.map ((e) => _bindForEntry (e) ).join (',' );
36
36
return await execute ('INSERT INTO $table ($columnList ) VALUES ($bindList )' ,
37
- values: values, expectedResultCount: 1 );
37
+ values: values.map ((key, value) =>
38
+ MapEntry (key, value is CustomBind ? value.value : value)),
39
+ expectedResultCount: 1 );
40
+ }
41
+
42
+ String _bindForEntry (MapEntry <String , Object > entry) {
43
+ final value = entry.value;
44
+ if (value is CustomBind ) {
45
+ return value.bind;
46
+ }
47
+ return '@${entry .key }' ;
38
48
}
39
49
40
50
Future <int > executeUpdate (
@@ -127,6 +137,12 @@ class DatabaseTransactionBase<TABLES extends TablesBase> {
127
137
}
128
138
}
129
139
140
+ class CustomBind {
141
+ CustomBind (this .bind, this .value);
142
+ final String bind;
143
+ final Object value;
144
+ }
145
+
130
146
abstract class DatabaseAccessBase <TX extends DatabaseTransactionBase <TABLES >,
131
147
TABLES extends TablesBase > {
132
148
DatabaseAccessBase ({
0 commit comments