this.mysqlexec("select * from dbo.ww_sales where CAST(sale_text as varchar(max)) like '%<guest_no>" + transform(m.pnDuplicate) + "</guest_no>%'", ; 'ww_sales', program()) this.make_view_updatable('ww_sales', 5) && table buffering select ww_sales replace ALL sale_text with strtran(sale_text, "<guest_no>" + transform(m.pnDuplicate) + "</guest_no>", "<guest_no>" + transform(m.pnOriginal) + "</guest_no>",-1,-1,1) DIMENSION laCommitError[1] if not tableupdate(2, .t., 'ww_sales', laCommitError) llError = .t. = AERROR(laError) lcErrorMsg = m.lcErrorMsg + "Can not perform update of ww_sales" + CHR(13) + laError(1,2) oAppObj.write_log('Some rows in ww_sales table can not be committed: '+TRANSFORM(ALEN(laCommitError,1))+' rows.', 'E', PROGRAM()) FOR EACH nRecord IN laCommitError GOTO nRecord * Mark bad record ENDFOR ENDIF use in select('ww_sales')>>I test a few cases (MS SQL and MS Access)
>this.mysqlexec("select * from dbo.ww_sales where CAST(sale_text as varchar(max)) like '%<guest_no>" + transform(m.pnDuplicate) + "</guest_no>%'", ; > 'ww_sales', program()) > this.make_view_updatable('ww_sales', 5) && table buffering > select ww_sales > replace ALL sale_text with strtran(sale_text, "<guest_no>" + transform(m.pnDuplicate) + "</guest_no>", "<guest_no>" + transform(m.pnOriginal) + "</guest_no>",-1,-1,1) > DIMENSION laCommitError[1] > if not tableupdate(2, .t., 'ww_sales') && , laCommitError) > llError = .t. > = AERROR(laError) > lcErrorMsg = m.lcErrorMsg + "Can not perform update of ww_sales" + CHR(13) + laError(1,2) > ENDIF > >*!* IF TYPE('laCommitError[1]') <> 'L' >*!* >*!* llError = .t. >*!* oAppObj.write_log('Some rows in ww_sales table can not be committed: ' + TRANSFORM(laCommitError[1]), 'E', PROGRAM()) >*!* IF laCommitError[1] = -1 >*!* = AERROR(laError) >*!* lcErrorMsg = m.lcErrorMsg + "Can not perform update of ww_sales" + CHR(13) + laError(1,2) >*!* endif >*!* endif > use in select('ww_sales') >