*-------------------------------------------------------------------------------------------------------------------------------------------------------- * (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