* test_ramburs_grup_nume_sql.prg * Proba read-only pe MARIUSM_AUTO pentru interogarea grupului de nume (punctul 1 din brief): * parteneri activi (sters=0, inactiv=0) cu denumirea exacta in orice permutare, pentru o denumire reala. * Ruleaza prin watchdog (fara parametri). Nu scrie nimic in Oracle. SET SAFETY OFF SET TALK OFF SET DELETED ON LOCAL lcLog lcLog = "D:\ROA\ROACONT\COMUN\utile\Teste\_test_ramburs_sql_out.txt" STRTOFILE("RUN " + TTOC(DATETIME()) + CHR(13)+CHR(10), lcLog) ON ERROR DO log_eroare_sql WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() DO (ADDBS("D:\ROA\ROACONT\COMUN\utile\Teste") + "test_init_env_auto.prg") WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT' IF gnHandle <= 0 DO log_sql WITH "FAIL: nu m-am conectat la MARIUSM_AUTO" QUIT ENDIF DO log_sql WITH "env init OK (schema " + gcS + ")" * aceeasi constructie ca in CreeanaNote: ListaSql(GetNamePermutations(...)) pentru o denumire cu 2 cuvinte PRIVATE pcDenGrup, pcDenGrupPerm pcDenGrup = "TOMESCU GEORGE" pcDenGrupPerm = GetNamePermutations(m.pcDenGrup, .F.) DO log_sql WITH "permutari: [" + m.pcDenGrupPerm + "]" LOCAL lcSql, llOk lcSql = [select id_part, denumire from nom_parteneri where sters = 0 and inactiv = 0 and ] + ; [(trim(upper(denumire)) = ?pcDenGrup or trim(upper(denumire)) in (] + ListaSql_if(m.pcDenGrupPerm) + [))] llOk = goExecutor.oExecuta(m.lcSql, 'cGrupNumeTest') IF m.llOk SELECT cGrupNumeTest DO log_sql WITH "PASS: interogare grup nume OK, randuri=" + TRANSFORM(RECCOUNT('cGrupNumeTest')) SCAN DO log_sql WITH " id_part=" + TRANSFORM(id_part) + " denumire=" + ALLTRIM(NVL(denumire, '')) ENDSCAN USE IN cGrupNumeTest ELSE DO log_sql WITH "FAIL: " + goExecutor.cEroare ENDIF DO log_sql WITH "=== GATA ===" QUIT * ListaSql e in oproceduri_import.prg, dar testul de SQL nu-l incarca; o replic aici identic FUNCTION ListaSql_if LPARAMETERS tcLista LOCAL lnI, lcRezultat, lcItem lcRezultat = '' FOR lnI = 1 TO GETWORDCOUNT(m.tcLista, ';') lcItem = ALLTRIM(GETWORDNUM(m.tcLista, m.lnI, ';')) IF !EMPTY(m.lcItem) lcRezultat = m.lcRezultat + IIF(EMPTY(m.lcRezultat), '', ',') + "'" + STRTRAN(m.lcItem, "'", "''") + "'" ENDIF ENDFOR RETURN m.lcRezultat ENDFUNC PROCEDURE log_sql LPARAMETERS tcTxt STRTOFILE(TRANSFORM(m.tcTxt) + CHR(13) + CHR(10), "D:\ROA\ROACONT\COMUN\utile\Teste\_test_ramburs_sql_out.txt", 1) ENDPROC PROCEDURE log_eroare_sql LPARAMETERS tnErr, tcMsg, tcProg, tnLine DO log_sql WITH " [ON ERROR] " + TRANSFORM(m.tnErr) + " " + TRANSFORM(m.tcMsg) + " in " + TRANSFORM(m.tcProg) + " linia " + TRANSFORM(m.tnLine) ENDPROC