132 lines
3.6 KiB
Plaintext
132 lines
3.6 KiB
Plaintext
PROCEDURE gencursor
|
|
PARAMETERS tcnume, tcalias, tcselect, tcfiltru, tcschema, tcorder, tlAfisare, tcgroup, tlModParam, tcFiltruOriginal
|
|
|
|
&& lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal
|
|
&& MODIFICAT 28.02.2005
|
|
&& tlModParam = .T. daca gencursor functioneaza fara WHERE inclus in tcSelect original
|
|
&& tcFiltruOriginal : .T. daca conditia care urmeaza dupa where este salvata si adaugata la query-urile ulterioare
|
|
|
|
LOCAL llModParam, lcFiltruOriginal
|
|
|
|
IF EMPTY(tlModParam) OR TYPE('tlModParam') # 'L'
|
|
llModParam = .F.
|
|
ELSE
|
|
llModParam = tlModParam
|
|
ENDIF
|
|
|
|
IF EMPTY(tcFiltruOriginal) OR TYPE('tcFiltruOriginal') # 'C'
|
|
lcFiltruOriginal = ''
|
|
ELSE
|
|
lcFiltruOriginal = ALLTRIM(tcFiltruOriginal)
|
|
ENDIF
|
|
|
|
&tcnume=NEWOBJECT('deca_baza')
|
|
&tcnume..ADDOBJECT('ca_baza1','ca_baza')
|
|
|
|
IF TYPE('goConn') = 'O'
|
|
&tcNume..datasource = goConn.nHandle
|
|
ELSE
|
|
IF TYPE('gnHandle') = 'N'
|
|
&tcNume..datasource = gnHandle
|
|
ENDIF
|
|
ENDIF
|
|
|
|
*lcSelect = TRANSFORM(UPPER(ALLTRIM(tcSelect)),[']
|
|
|
|
|
|
|
|
LOCAL laEroare
|
|
DECLARE laEroare[1]
|
|
|
|
lnpCount = PCOUNT()
|
|
llAfisare = tlAfisare
|
|
|
|
WITH &tcnume..ca_baza1
|
|
IF lnpCount > 6
|
|
.lAfisare = llAfisare
|
|
ENDIF
|
|
.ALIAS=ALLTRIM(UPPER(tcalias))
|
|
IF !EMPTY(tcschema)
|
|
IF INLIST(LEFT(tcschema,1),['],["],'[')
|
|
.CURSORSCHEMA=&tcschema
|
|
ELSE
|
|
IF LEN(tcschema) > 250
|
|
lngrupe = CEILING(LEN(tcschema)/250)
|
|
lcgrupa = tcschema
|
|
FOR i = 1 TO lngrupe
|
|
lcgrupat = LEFT(lcgrupa,250)
|
|
.CURSORSCHEMA = .CURSORSCHEMA + lcGrupat
|
|
lcgrupa = SUBSTR(lcgrupa,251)
|
|
ENDFOR
|
|
ELSE
|
|
.CURSORSCHEMA=tcschema
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF INLIST(LEFT(tcselect,1),['],["],'[')
|
|
.SELECTCMD = &tcselect
|
|
.cSelect = &tcselect
|
|
ELSE
|
|
IF LEN(tcselect) > 250
|
|
lngrupe = CEILING(LEN(tcSelect)/250)
|
|
lcgrupa = tcSelect
|
|
FOR i = 1 TO lngrupe
|
|
lcgrupat = LEFT(lcgrupa,250)
|
|
.SELECTCMD = .SELECTCMD + lcGrupat
|
|
.cSelect = .cSelect + lcGrupat
|
|
lcgrupa = SUBSTR(lcgrupa,251)
|
|
ENDFOR
|
|
ELSE
|
|
.SELECTCMD = tcselect
|
|
.cSelect = tcselect
|
|
ENDIF
|
|
ENDIF
|
|
*!* STRTOFILE(.selectcmd,[c:\selectcmd.txt])
|
|
|
|
.cfiltru=ALLTRIM(UPPER(tcfiltru))
|
|
IF !EMPTY(tcorder)
|
|
.cOrder=ALLTRIM(UPPER(tcorder))
|
|
ENDIF
|
|
IF !EMPTY(tcgroup)
|
|
.cGroup=ALLTRIM(UPPER(tcgroup))
|
|
ENDIF
|
|
.lModParam = llModParam
|
|
.cFiltruOriginal = lcFiltruOriginal
|
|
ENDWITH
|
|
|
|
*!* IF !USED(tcAlias)
|
|
*!* AERROR(laEroare)
|
|
*!* IF TYPE('LAEROARE')!= 'U'
|
|
*!* IF ALEN(laEroare) > 1
|
|
*!* IF TYPE('goLog')='O'
|
|
|
|
*!* lcLog = laEroare(3) + CHR(13) + 'SELECT: ' + tcSelect + CHR(13) + 'SCHEMA: ' + tcSchema + CHR(13) + 'FILTRU: ' + tcFiltru + CHR(13) + 'ORDINE: ' + tcOrder
|
|
*!* goLog.Log(lcLog,PROGRAM())
|
|
*!* ENDIF
|
|
*!* MESSAGEBOX(laEroare(3),0+16,"Eroare")
|
|
|
|
*!* ENDIF
|
|
*!* ENDIF
|
|
*!* ENDIF
|
|
*!* RELEASE laEroare
|
|
ENDPROC
|
|
|
|
PROCEDURE gencursor_hash
|
|
PARAMETERS toHash
|
|
|
|
LOCAL lcNume, lcAlias, lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal
|
|
|
|
lcNume = toHash.GetValue('cNume')
|
|
lcAlias = toHash.GetValue('cAlias')
|
|
lcSelect = toHash.GetValue('cSelect')
|
|
lcFiltru = toHash.GetValue('cFiltru')
|
|
lcSchema = toHash.GetValue('cSchema')
|
|
lcOrder = toHash.GetValue('cOrder')
|
|
llAfisare = toHash.GetValue('lAfisare')
|
|
lcGroup = toHash.GetValue('cGroup')
|
|
llModParam = toHash.GetValue('lModParam')
|
|
lcFiltruOriginal = toHash.GetValue('cFiltruOriginal')
|
|
|
|
= gencursor(lcnume, lcalias, lcselect, lcfiltru, lcschema, lcorder, llAfisare, lcgroup, llModParam, lcFiltruOriginal)
|
|
|
|
ENDPROC && gencursor_hash |