@@ -44,27 +44,29 @@ var rowBase = function() {
44
44
}
45
45
46
46
function insert ( obj ) {
47
- var keys = fieldsForObject ( obj ) ;
48
- var statementString = insertStatement ( obj , keys ) ;
47
+ return obj . _meta . db . whenConnected ( function ( ) {
48
+ var keys = fieldsForObject ( obj ) ;
49
+ var statementString = insertStatement ( obj , keys ) ;
49
50
50
- var params = _ . pick ( obj , keys ) ;
51
+ var params = _ . pick ( obj , keys ) ;
51
52
52
- if ( obj . _meta . db . driver . outputIdKeys && ! obj . _meta . compoundKey ) {
53
- params = _ . extend ( params , obj . _meta . db . driver . outputIdKeys ( obj . _meta . idType ) ) ;
54
- }
53
+ if ( obj . _meta . db . driver . outputIdKeys && ! obj . _meta . compoundKey ) {
54
+ params = _ . extend ( params , obj . _meta . db . driver . outputIdKeys ( obj . _meta . idType ) ) ;
55
+ }
55
56
56
- return obj . _meta . db . query ( statementString , params , {
57
- insert : ! obj . _meta . compoundKey ,
58
- statement : obj . _meta . compoundKey ,
59
- id : obj . _meta . id
60
- } ) . then ( function ( insertedId ) {
61
- obj . setSaved ( ) ;
57
+ return obj . _meta . db . query ( statementString , params , {
58
+ insert : ! obj . _meta . compoundKey ,
59
+ statement : obj . _meta . compoundKey ,
60
+ id : obj . _meta . id
61
+ } ) . then ( function ( insertedId ) {
62
+ obj . setSaved ( ) ;
62
63
63
- if ( ! obj . _meta . compoundKey ) {
64
- obj [ obj . _meta . id ] = insertedId ;
65
- }
64
+ if ( ! obj . _meta . compoundKey ) {
65
+ obj [ obj . _meta . id ] = insertedId ;
66
+ }
66
67
67
- return obj . setNotChanged ( ) ;
68
+ return obj . setNotChanged ( ) ;
69
+ } ) ;
68
70
} ) ;
69
71
}
70
72
@@ -330,7 +332,7 @@ exports.db = function(config) {
330
332
query : function ( query , params , options ) {
331
333
var self = this ;
332
334
333
- function runQuery ( ) {
335
+ return this . whenConnected ( function ( ) {
334
336
var command = options && options . insert
335
337
? self . driver . insert ( query , params , options )
336
338
: self . driver . query ( query , params , options )
@@ -342,12 +344,14 @@ exports.db = function(config) {
342
344
self . logError ( query , params , e ) ;
343
345
throw e ;
344
346
} ) ;
345
- }
347
+ } ) ;
348
+ } ,
346
349
350
+ whenConnected : function ( fn ) {
347
351
if ( this . runningBeginSession ) {
348
- return runQuery ( ) ;
352
+ return fn ( ) ;
349
353
} else {
350
- return this . connect ( ) . then ( runQuery ) ;
354
+ return this . connect ( ) . then ( fn ) ;
351
355
}
352
356
} ,
353
357
0 commit comments