Squash al branch-ului de lucru plan13-s2. Clase: ofacturare (nucleul formularului unificat), ofacturare_comun, ferestre_cere_date, ocomenzi, caut_ora (lista de preturi in combo-urile de cautare), omodificari. Programe: ofacturare impartit - ofacturare_antet, ofacturare_rutare_scriere si ogrid_latimi sunt fisiere noi; oproceduri_facturare primeste discountul pe linie si cota standard de TVA cand articolul nu are cota pe politica. Documentatie: capcana SQLExec no_data_found, conventia de encoding, depanarea testelor VFP si regulile de lucru - conflictele cu modificarile venite din alte proiecte sunt rezolvate pastrand ambele parti. Loguri de rulare a testelor scoase din versionare; testele raman. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PkyjGyrV2S7932om4kfSiK
125 lines
3.9 KiB
Plaintext
125 lines
3.9 KiB
Plaintext
* test_s8_unicitate_cursuri2.prg
|
|
* Diagnostic: izoleaza cauza erorii ODBC 1526 (Invalid string or buffer length) din
|
|
* test_s8_unicitate_cursuri.prg, testand query-uri mai simple pe rand.
|
|
|
|
SET SAFETY OFF
|
|
SET TALK OFF
|
|
|
|
PUBLIC gcErrLog
|
|
gcErrLog = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\editare_factura\test_s8_unicitate_cursuri2_log.txt'
|
|
STRTOFILE('start' + CHR(13) + CHR(10), gcErrLog)
|
|
|
|
ON ERROR DO test_error_handler WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
|
|
|
DO ('D:\ROA\ROAFACTURARE\COMUN\utile\Teste\test_init_env_auto.prg') WITH 'CENTRAL', 'MARIUSM_AUTO', 'ROMFASTSOFT', 2026, 8
|
|
IF gnHandle <= 0
|
|
STRTOFILE('EROARE: conectare esuata' + CHR(13) + CHR(10), gcErrLog, 1)
|
|
QUIT
|
|
ENDIF
|
|
|
|
LOCAL lcOut, lcSql
|
|
|
|
*!* A. tabela exista?
|
|
lcSql = [select count(*) as nr from vanzari_cursuri]
|
|
IF Used('crsA')
|
|
Use In crsA
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crsA]) < 0
|
|
lcOut = 'A EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = 'A OK, nr=' + TRANSFORM(crsA.nr) + CHR(13) + CHR(10)
|
|
USE IN crsA
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
|
|
*!* B. all_constraints simplu, fara join
|
|
lcSql = [select constraint_name, constraint_type from all_constraints where owner = 'MARIUSM_AUTO' and table_name = 'VANZARI_CURSURI']
|
|
IF Used('crsB')
|
|
Use In crsB
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crsB]) < 0
|
|
lcOut = 'B EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = 'B OK, reccount=' + TRANSFORM(RECCOUNT('crsB')) + CHR(13) + CHR(10)
|
|
IF RECCOUNT('crsB') > 0
|
|
SELECT crsB
|
|
SCAN
|
|
lcOut = lcOut + TRANSFORM(constraint_name) + ' | ' + TRANSFORM(constraint_type) + CHR(13) + CHR(10)
|
|
ENDSCAN
|
|
ENDIF
|
|
USE IN crsB
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
|
|
*!* C. all_cons_columns simplu, fara join, filtrat pe tabela
|
|
lcSql = [select constraint_name, column_name, position from all_cons_columns where owner = 'MARIUSM_AUTO' and table_name = 'VANZARI_CURSURI']
|
|
IF Used('crsC')
|
|
Use In crsC
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crsC]) < 0
|
|
lcOut = 'C EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = 'C OK, reccount=' + TRANSFORM(RECCOUNT('crsC')) + CHR(13) + CHR(10)
|
|
IF RECCOUNT('crsC') > 0
|
|
SELECT crsC
|
|
SCAN
|
|
lcOut = lcOut + TRANSFORM(constraint_name) + ' | ' + TRANSFORM(column_name) + ' | pos=' + TRANSFORM(position) + CHR(13) + CHR(10)
|
|
ENDSCAN
|
|
ENDIF
|
|
USE IN crsC
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
|
|
*!* D. all_indexes simplu, fara join
|
|
lcSql = [select index_name, uniqueness from all_indexes where owner = 'MARIUSM_AUTO' and table_name = 'VANZARI_CURSURI']
|
|
IF Used('crsD')
|
|
Use In crsD
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crsD]) < 0
|
|
lcOut = 'D EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = 'D OK, reccount=' + TRANSFORM(RECCOUNT('crsD')) + CHR(13) + CHR(10)
|
|
IF RECCOUNT('crsD') > 0
|
|
SELECT crsD
|
|
SCAN
|
|
lcOut = lcOut + TRANSFORM(index_name) + ' | ' + TRANSFORM(uniqueness) + CHR(13) + CHR(10)
|
|
ENDSCAN
|
|
ENDIF
|
|
USE IN crsD
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
|
|
*!* E. all_ind_columns simplu, fara join
|
|
lcSql = [select index_name, column_name, column_position from all_ind_columns where index_owner = 'MARIUSM_AUTO' and table_name = 'VANZARI_CURSURI']
|
|
IF Used('crsE')
|
|
Use In crsE
|
|
ENDIF
|
|
IF goExecutor.oExecute(m.lcSql, [crsE]) < 0
|
|
lcOut = 'E EROARE: ' + goExecutor.cEroare + CHR(13) + CHR(10)
|
|
ELSE
|
|
lcOut = 'E OK, reccount=' + TRANSFORM(RECCOUNT('crsE')) + CHR(13) + CHR(10)
|
|
IF RECCOUNT('crsE') > 0
|
|
SELECT crsE
|
|
SCAN
|
|
lcOut = lcOut + TRANSFORM(index_name) + ' | ' + TRANSFORM(column_name) + ' | pos=' + TRANSFORM(column_position) + CHR(13) + CHR(10)
|
|
ENDSCAN
|
|
ENDIF
|
|
USE IN crsE
|
|
ENDIF
|
|
goExecutor.oReset()
|
|
STRTOFILE(m.lcOut, gcErrLog, 1)
|
|
|
|
STRTOFILE('done' + CHR(13) + CHR(10), gcErrLog, 1)
|
|
QUIT
|
|
|
|
|
|
PROCEDURE test_error_handler
|
|
LPARAMETERS tnError, tcMessage, tcProgram, tnLineNo
|
|
|
|
STRTOFILE('EROARE ' + TRANSFORM(tnError) + ' [' + tcProgram + ':' + TRANSFORM(tnLineNo) + '] ' + tcMessage + CHR(13) + CHR(10), gcErrLog, 1)
|
|
ENDPROC
|