* optiuni_test.prg * Salvarea si restaurarea randurilor din OPTIUNI atinse de teste. Testele scriu si sterg optiuni * reale pe schema de test; fara restaurare, schema ramane fara ele si aplicatia porneste dupa * comportamentul implicit. * SalveazaOptiuni('A,B') la inceputul testului, RestaureazaOptiuni() la final: optiunile care * existau isi recapata valoarea, tipul si descrierea; cele create de test se sterg. PROCEDURE SalveazaOptiuni LPARAMETERS tcListaVarname IF TYPE('gcOptiuniTestIn') <> 'C' PUBLIC gcOptiuniTestIn ENDIF gcOptiuniTestIn = "'" + STRTRAN(STRTRAN(UPPER(ALLTRIM(m.tcListaVarname)), ' ', ''), ',', "','") + "'" IF USED('crsOptTestSalvate') USE IN (SELECT('crsOptTestSalvate')) ENDIF goExecutor.oExecuta("select varname, vartype, program, varvalue, vardesc from optiuni" + ; " where varname in (" + m.gcOptiuniTestIn + ")", 'crsOptTestBrut') IF !USED('crsOptTestBrut') RETURN ENDIF SELECT * FROM crsOptTestBrut INTO CURSOR crsOptTestSalvate READWRITE USE IN (SELECT('crsOptTestBrut')) ENDPROC ********************************************************** PROCEDURE RestaureazaOptiuni LOCAL lnSel, lcNume, lcExistente, lnCount IF TYPE('gcOptiuniTestIn') <> 'C' OR !USED('crsOptTestSalvate') RETURN ENDIF lnSel = SELECT() lcExistente = '' SELECT crsOptTestSalvate SCAN lcNume = UPPER(ALLTRIM(NVL(crsOptTestSalvate.varname, ''))) IF EMPTY(m.lcNume) LOOP ENDIF lcExistente = m.lcExistente + IIF(EMPTY(m.lcExistente), '', ',') + "'" + m.lcNume + "'" lnCount = 0 goExecutor.oSelecteaza2Value("select count(*) from optiuni where varname = '" + m.lcNume + "'", @lnCount) IF NVL(m.lnCount, 0) > 0 goExecutor.oExecuta("update optiuni set vartype = " + SqlLit(crsOptTestSalvate.vartype) + ; ", program = " + SqlLit(crsOptTestSalvate.program) + ; ", varvalue = " + SqlLit(crsOptTestSalvate.varvalue) + ; ", vardesc = " + SqlLit(crsOptTestSalvate.vardesc) + ; " where varname = '" + m.lcNume + "'") ELSE goExecutor.oExecuta("insert into optiuni (varname, vartype, program, varvalue, vardesc) values ('" + ; m.lcNume + "', " + SqlLit(crsOptTestSalvate.vartype) + ", " + SqlLit(crsOptTestSalvate.program) + ; ", " + SqlLit(crsOptTestSalvate.varvalue) + ", " + SqlLit(crsOptTestSalvate.vardesc) + ")") ENDIF ENDSCAN * optiunile cerute care lipseau inainte de test au fost create de el goExecutor.oExecuta("delete from optiuni where varname in (" + m.gcOptiuniTestIn + ")" + ; IIF(EMPTY(m.lcExistente), '', " and varname not in (" + m.lcExistente + ")")) goExecutor.oExecuta('COMMIT') SELECT (m.lnSel) actualizeaza_optiuni() ENDPROC ********************************************************** FUNCTION SqlLit LPARAMETERS tuValoare IF ISNULL(m.tuValoare) OR EMPTY(NVL(m.tuValoare, '')) RETURN 'null' ENDIF RETURN "'" + STRTRAN(ALLTRIM(m.tuValoare), "'", "''") + "'" ENDFUNC