70 lines
2.6 KiB
Plaintext
70 lines
2.6 KiB
Plaintext
* 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
|