******** FUNCTION ini adalah pengganti perintah SQLEXEC dan tidak menggunakan metode transaction
FUNCTION lakukan
PARAMETERS perintah,KUR
IF EMPTY(KUR)
KUR='TAMPUNGAN'
ENDIF
IF SQLEXEC(_KON,perintah,KUR)<0
WAIT WINDOW "Maaf perintah GAGAL'
RETURN 0
ELSE
RETURN 1
ENDIF
ENDFUNC
******* FUNCTION untuk men-deklarasikan variable public sebagai handle
FUNCTION lakukan0
lakukan('SET autocommit=0')
lakukan('start transaction')
RETURN 1
ENDFUNC
****** FUNCTION perintah sesungguhnya
Function lakukan1
Parameters nbalik,perintah,KUR
Local Array aError_(10)
If nbalik=0
Return
Endif
KUR = Iif(PCOUNT()<3,'TAMPUNGAN', KUR)
aError_(1)=0
SQLEXEC(_KON,perintah,KUR)
Aerror(aError_) && Get Error
If aError_(1) < 0
cMsgErr = Substr(aError_(3),Rat(']',aError_(3))+1,Len(aError_(3)))
Messagebox(cMsgErr)
nbalik=0
Else
nbalik=1
Endif
Return nbalik
Endfunc
***** FUNCTION untuk menentukan apakah mau commit ato rollback
FUNCTION lakukan2
PARAMETERS nbalik
IF nbalik=1
lakukan('commit')
lakukan('set autocommit=1')
RETURN .T.
ELSE
lakukan('rollback')
lakukan('set autocommit=1')
RETURN .F.
ENDIF
ENDFUNC
cara penggunaannya :
- untuk perintah yang tidak menggunakan metode transaction
lakukan([select * from tabel where year(tanggal)=2009],'kursor')
lakukan([insert into tabel1 (a,b) values (?xa,?xb)])
- untuk perintah yang menggunakan metode transaction
sukses=lakukan0()
lakukan1(sukses,[insert into tabel1 (a,b) values (?xa,?xb)])
lakukan1(sukses,[insert into tabel2 (a,b) values (?xa,?xb)])
lakukan1(sukses,[insert into tabel3 (a,b) values (?xa,?xb)])
lakukan2(sukses)
23 Maret 2009
Langganan:
Posting Komentar (Atom)
2 komentar:
Assalamu'alaikum Wr Wb
ikut belajar boleh ya mas
walaikumsalam Wr.Wb
monggo-monggo...
Posting Komentar