@@ -644,9 +644,27 @@ IBMDB.prototype.buildIndexes = function(model) {
644644 debug ( 'IBMDB.prototype.buildIndexes %j' , model ) ;
645645} ;
646646
647+ IBMDB . prototype . buildReplace = function ( model , where , data , options ) {
648+ debug ( 'IBMDB.prototype.buildReplace: model=$s, where=%j, options=%j' ,
649+ model , where , options ) ;
650+ var self = this ;
651+ var idName = self . idName ( model ) ;
652+ var fields = self . buildFieldsForReplace ( model , data ) ;
653+ var updateClause = new ParameterizedSQL ( 'UPDATE ' + self . tableEscaped ( model ) ) ;
654+ var whereClause = self . buildWhere ( model , where ) ;
655+ var selectClause = new ParameterizedSQL ( 'SELECT COUNT(\"' + idName + '\") ' +
656+ 'AS \"affectedRows\" FROM FINAL TABLE(' ) ;
657+
658+ updateClause . merge ( [ fields , whereClause ] ) ;
659+ selectClause . merge ( [ updateClause , ')' ] ) ;
660+
661+ return ( selectClause ) ;
662+ } ;
663+
647664IBMDB . prototype . getCountForAffectedRows = function ( model , info ) {
648- var affectedRows = info && typeof info . affectedRows === 'number' ?
649- info . affectedRows : undefined ;
665+ var affectedRows = info && info [ 0 ] &&
666+ typeof info [ 0 ] . affectedRows === 'number' ?
667+ info [ 0 ] . affectedRows : undefined ;
650668 return affectedRows ;
651669} ;
652670
0 commit comments