>>LPARAMETERS tcAlias >> >>IF EMPTY( tcAlias ) >> tcAlias = this.cfetchalias >>ENDIF >> >>LOCAL lnNumFields, lnX, lnSelect, lcField, lcMemVar >>LOCAL ARRAY laFields[1] >> >>lnSelect = SELECT() >>SELECT (tcAlias) >> >>lnNumFields = AFIELDS( laFields ) >>FOR lnX = 1 TO lnNumFields >> >> lcField = laFields[lnX, 1] >> lcMemVar = "m." + lcField >>* leave the pk alone >> IF ALLTRIM(UPPER(lcField)) == ALLTRIM(UPPER(this.cpkfield)) >> LOOP >> ENDIF >> >> IF NOT &lcField == &lcMemVar >> REPLACE &lcField WITH &lcMemVar >> ENDIF >>ENDFOR >> >>SELECT (lnSelect) >>>>
>>If CursorGetProp("Buffering")=5 >> lnRecno = Recno() >> lnGetNextModified = Getnextmodified( 0 ) >> Do While lnGetNextModified # 0 >> Go lnGetNextModified >> lcUpdateStatus = Getfldstate(-1) >> If Left( lcUpdateStatus, 1) = "2" >> * note the update stored procedure needs to be setup to accept "@delete_tablename = 1" parameter >> lcUpdateMessage = "exec " + lcDatabase + "." + This.db_schema + "." + lcPrefix + "_update_" + This.cTableName + " @" + This.cpkfield + ; >> "=" + Alltrim(Str(Evaluate(This.cpkfield))) + ", @update_user = '"+ lcUpdateUser + "', @update_program = '" + lcUpdateProgram + "', " ; >> + " @delete_" + This.cTableName + " = 1" + ; >> IIF( Type( This.laUpdateTables[lnY] + ".ssnum") # "U", ", @demoid=" + Alltrim(Str(Int(Val(Eval( This.laUpdateTables[lnY] + ".ssnum"))))), "") + ; >> IIF( This.AlwaysSendAcctid And Not Empty( tcAcctId ), ", @acctid='" + tcAcctId + "'", "") >> >> llOk = This.SQLExec( lcUpdateMessage ) >> If Not llOk >> llUpdatesOk = .F. >> Endif >> >> lcUpdateMessage = "" >> >>*And so forth >>>>