*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_cus_odata_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _cusodatabase AS _custom OF "_baza.vcx"
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*
*m: confirma_salvare
*m: do_deschide_tranzactie
*m: do_inchide_tranzactie
*m: make_sql
*m: salvare
*m: validare
*p: cactiune
*p: ccursor_detalii && Se completeaza in cazul in care trebuie salvat capul de tabel o data cu detaliile ( ex.: nom_retetar si nom_retetar_elemente )
*p: csql
*p: lsalvareconfirmata
*p: lsilent
*
*
cactiune = INSERT
ccursor_detalii =
csql =
Height = 18
lsalvareconfirmata = .F.
lsilent = .F.
Name = "_cusodatabase"
Width = 21
*
PROCEDURE confirma_salvare
Private buton
Local lcActiune,lcMesaj,lcTitlu,lcImagine,lcTip,loFrmIntreb
buton = 1
lcMesaj = ''
lcTitlu = ''
lcImagine = [intreb.ico]
lcTip = [Intrebare]
lcActiune = Upper(Alltrim(This.cactiune))
Do Case
Case lcActiune = "INSERT"
lcMesaj = "Doriți să adăugați înregistrarea?"
lcTitlu = "Adăugare"
* lnOptiuni = 4 + 32
Case lcActiune = "UPDATE"
lcMesaj = "Doriți să salvați modificările?"
lcTitlu = "Modificare"
* lnOptiuni = 4 + 32
Case lcActiune = "DELETE"
lcMesaj = "Doriți să ștergeți înregistrarea?"
lcTitlu = "Ștergere"
* lnOptiuni = 4 + 32 + 512
Case lcActiune = "LOCAL"
lcMesaj = "Doriți să salvați datele?"
lcTitlu = "Salvare"
* lnOptiuni = 4 + 32
Endcase
loFrmIntreb = Createobject('frm_mesaj',lcTitlu,lcImagine,lcTip,lcMesaj)
loFrmIntreb.Show(1)
If buton = 1
This.lsalvareconfirmata = .T.
Else
This.lsalvareconfirmata = .F.
Endif
Release lcActiune,lcMesaj,lcTitlu,lcImagine,lcTip,loFrmIntreb,buton
ENDPROC
PROCEDURE do_deschide_tranzactie
Local llReturn
If Type('goExecutor')='O'
goExecutor.oExecuta([select * from dual])
Endif
lnSucces = SQLSetprop(gnHandle,"Transactions",2)
If lnSucces < 0
amessagebox("Programul nu a reusit sa treaca pe tranzactie manuala! Reintrati in program si incercati din nou!",48,"Atentie")
llReturn = .F.
Else
llReturn = .T.
Endif
Return llReturn
ENDPROC
PROCEDURE do_inchide_tranzactie
Lparameters tnTip
Local llReturn,lnSucces,lcExplicatie
If tnTip = 1
lnSucces = Sqlcommit(gnHandle)
lcExplicatie = [COMMIT]
Else
lnSucces = Sqlrollback(gnHandle)
lcExplicatie = [ROLLBACK]
Endif
If lnSucces < 0
amessagebox("Eroare la "+lcExplicatie+"!",48,"Atentie")
llReturn = .F.
Else
lnSucces = SQLSetprop(gnHandle,"Transactions",1)
If lnSucces < 0
amessagebox('Programul nu a reusit sa treaca pe tranzactie automata. Iesiti din program si intrati din nou!',0+48,'Atentie!')
llReturn = .F.
Else
llReturn = .T.
Endif
Endif
Return llReturn
ENDPROC
PROCEDURE make_sql
ENDPROC
PROCEDURE salvare
*!* 23.01.2020
*!* marius.mutu
*!* am adaugat poRec sa il pot folosi in This.makesql
Lparameters toRec,tnId
Local llSucces, lnSucces, lcActiune, lcSql, llConditie, lcTextEroare
PRIVATE poRec
poRec = toRec
llSucces = .T.
lnSucces = -1
If This.lSilent
This.lsalvareconfirmata = .T.
Else
This.confirma_salvare()
Endif
* pnId, pnIdUtil se folosesc in DELETE
IF TYPE('pnId') = 'U'
PRIVATE pnId
pnId = m.tnId
ENDIF
IF TYPE('pnIdUtil') = 'U'
PRIVATE pnIdUtil
pnIdUtil = m.gnIdUtil
ENDIF
If This.lsalvareconfirmata
PNIESIRE=1
gnButon = 1
If This.validare()
This.make_sql(toRec,tnId)
lcActiune = Upper(Alltrim(This.cactiune))
lcSql = Alltrim(This.csql)
llConditie = 'INSERT'$Upper(lcSql) Or 'UPDATE'$Upper(lcSql) Or 'DELETE'$Upper(lcSql) Or 'BEGIN'$Upper(lcSql)
If llConditie
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
lcTextEroare = goExecutor.oPrelucrareEroare()
Do Case
Case lcActiune = "INSERT"
lcMesaj = "Inregistrarea nu a fost adaugata." + Chr(13) + Chr(10) + lcTextEroare
lcTitlu = "Adăugare"
Case lcActiune = "UPDATE"
lcMesaj = "Inregistrarea nu a fost modificata." + Chr(13) + Chr(10) + lcTextEroare
lcTitlu = "Modificare"
Case lcActiune = "DELETE"
lcMesaj = "Inregistrarea nu a fost stearsa." + Chr(13) + Chr(10) + lcTextEroare
lcTitlu = "Ștergere"
Endcase
lcimagine = [info_c.ico]
lctip = [Informare]
AMESSAGE(lcMesaj,0+16,lctip)
llSucces = .F.
Endif
If lnSucces >=1 And lcActiune = "DELETE"
lcTitlu = "Stergere"
lctip = [Informare]
lcimagine = [info_c.ico]
lcMesaj = "Inregistrarea a fost stearsa!"
AMESSAGE(lcMesaj,0+48,lctip)
Endif
Endif
Endif
Else
PNIESIRE = 2
gnButon = 2
Endif
Return llSucces
ENDPROC
PROCEDURE validare
Lparameters toRec, tnId
Local llReturn
If This.cactiune = [LOCAL]
llReturn = .F.
Else
llReturn = .T.
Endif
Return llReturn
ENDPROC
ENDDEFINE