>pdFromDt = DTOT(ThisForm.txtdFromDt.VALUE) > >TEXT TO lcSQL TEXTMERGE NOSHOW > SELECT 1 AS iOrder, mA.iID AS iPID, mA.iID as iGID, '<<pdFromDt>>' AS tDt, > mA.iID AS iAcctID, CASE WHEN mA.cDrCr = 'DR' AND mA.bOpBal > 0 THEN mA.bOpBal > ELSE CASE WHEN mA.cDrCr = 'CR' AND mA.bOpBal < 0 THEN -mA.bOpBal > ELSE CAST(0 AS DOUBLE PRECISION) END END AS bDebit, > CASE WHEN mA.cDrCr = 'CR' AND mA.bOpBal > 0 THEN mA.bOpBal > ELSE CASE WHEN mA.cDrCr = 'DR' AND mA.bOpBal < 0 THEN -mA.bOpBal > ELSE CAST(0 AS DOUBLE PRECISION) END END AS bCredit, 'O' AS cSource > FROM mAccounts mA >ENDTEXT > > >IF NOT THIS.AllRecordsSelected() > TEXT TO lcSQL ADDITIVE TEXTMERGE NOSHOW > WHERE mA.iID IN (SELECT ID > FROM AccountsSelected > WHERE TRIM(JobID) = '<<THIS.cJobID>>') > ENDTEXT >ENDIF > >MESSAGEBOX(lcSQL) >SQLPT(lcSQL, "curLedger") >SELECT curLedger >BROWSE NORM>
pdFromDt = ThisForm.txtdFromDt.VALUE TEXT TO lcSQL TEXTMERGE NOSHOW SELECT 1 AS iOrder, mA.iID AS iPID, mA.iID as iGID, ?m.pdFromDt AS tDtSQLPT code seems to be the culprit. Maybe you can edit it to accept a parameter object. Something like:
oParm = createobject('empty') addproperty(oParm, "pdFromDt", ThisForm.txtdFromDt.VALUE) TEXT TO lcSQL TEXTMERGE NOSHOW SELECT 1 AS iOrder, mA.iID AS iPID, mA.iID as iGID, ?toParm.pdFromDt AS tDt *... SQLPT(lcSQL, "curLedger", oParm) * SQLPT lparameters tcSQL,tcAlias,toParmI wouldn't use a wrapper that can't handle parameters.