* 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