Arsip: no more transaction on this session (?) ADO
more 16 years ago
ronin
kenapa muncul pesan 'no more transaction on this session'
pada saat dilakukan command blok BeginTrans - CommitTrans - RoolbackTrans.
sehingga proses updating data gagal terus.
Sebelumnya proses ini tidak ada masalah. Setelah ada beberapa tambahan TADOQuery dengan memanfaatkan single TADOConnection. baru pesan ini muncul.
- Apakah ada batasan jumlah connection pada TADOConnection?
- Bagaimana cara kita mengetahui jumlah transaction pada session yang ada?
- Bagaimana cara solusi jitu hal ini?
Matur Nuwun
more 16 years ago
ronin
Maaf pesan aslinya adalah 'Cannot start more transactions on this session'
Dabatase : MS-SQL 2000
more 16 years ago
belajaraja
Salam..
coba pake seperti ini
procedure Tfrminput.btnsimpanClick(Sender: TObject);
var
ErrorOccured : boolean;
begin
ErrorOccured := False;
with DataModule do
begin
try
koneksi.BeginTrans;
{masukan perintah sql nya disini.............}
koneksi.CommitTrans
except
on E:Exception do
begin
DBConnection.RollbackTrans;
ErrorOccured := True;
MessageDlg('Transaksi Memasukan data Gagal !!!' +#13+ 'ERROR: ' + e.Message, mtError,[mbOk],0);
end;
end; // end punya try
if ErrorOccured = False then
begin
masukan code nya jika tidak ada kesalahan yang anda inginkan
end;
end;
end;
more 16 years ago
albie
setahuku, memang jika koneksi pakai single ADO, hanya bisa handle satu transaksi. Jadi selama transaksi belum di commit, ngga bisa start transaksi yang lain. Kalau mau, tambah ADO connectionnya... atau commit/rollback dulu transaksi sebelumnya...
moga membantu
more 16 years ago
ronin
Terima Kasih..
saya sebelumnya udah menggunakan teknik mas BelajarRaja. Tapi masalah mas...
bahkan seandainya tidak ada perintah SQL, saat command BeginTrans dijalankan pasti muncul lagi.
Mas albie, satu transaksi itu maksudnya gimana? Hanya satu kali Insert gitu? Insert keduanya jadi ndak bisa?
Lha kalo transaksinya Master Detail gimana?
Tapi kemarin saya coba dengan code ini sebelum BeginTrans
koneksi.Attributes := [xaAbortRetaining];
koneksi.BeginTrans;
Lha kok lancar. Apa ya hakekat sebenarnya?
Thanks..
more 16 years ago
albie
maksudnya begini, yang namanya satu paket transaksi kan dimulai begintrans dan diakhiri commit/rollbacktrans. Nah, ADOConnection hanya bisa menghandle satu paket transaksi dalam satu waktu. Coding di bawah akan lebih jelas, baris kedua akan menyebabkan error :
1.. koneksi.begintrans;
2.. koneksi.begintrans; -> ERROR krn transaksi sebelumnya belum dicommit/rollback.
Hmm.. utk attribut saya belum pernah pake, tapi kemungkinan, dgn attribut itu, koneksi akan otomatis meng-abort transaksi sebelumnya jika akan dimulai transaksi yang baru.. Jawaban saya yg ini mungkin bisa aja salah, krn hanya berdasar logika saya ajah... Krn sifatnya yang meng-abort, bisa jadi transaksi sebelumnya tidak disimpan.. coba dites dulu.. misalnya begini, ada query yang isinya insert ke tabel :
1.. koneksi.Attributes := [xaAbortRetaining];
2.. koneksi.BeginTrans;
3.. query.commandtext := 'INSERT INTO Tabel1(field1) VALUES(''TRANS_1'')';
4.. query.execute;
5.. koneksi.begintrans;
6.. query.commandtext := 'INSERT INTO Tabel1(field1) VALUES(''TRANS_2'')';
7.. query.execute;
8.. koneksi.committrans;
program di atas, jika baris 1 dihilangkan, akan terjadi error saat eksekusi baris 5. Jika baris 1 ada, mungkin akan lancar2 saja, tapi lihat dulu di tabel1, data yang masuk kedua2nya, atau hanya 'TRANS_2'... Secara logika, yang masuk hanya 'TRANS_2'. Tes........
more 16 years ago
ronin
Wah kayaknya tidak nested Transaction deh mas. Saya hanya gunakan satu perintah BeginTrans dan CommitTrans
Biasanya jika mau ada perintah BeginTrans memang saya commit dulu.
Jadi kelihatannya jadi kayak gini?
koneksi.Attributes := [xaAbortRetaining];
1.. koneksi.BeginTrans;
2.. query.commandtext := 'INSERT INTO Tabel1(field1) VALUES(''TRANS_1'')';
3.. query.execute;
4.. query.commandtext := 'INSERT INTO Tabel2(field1) VALUES(''TRANS_2'')';
5.. query.execute;
6.. koneksi.committrans;
BTW, terima kasih banyak masukannya..
more 15 years ago
babypigs
kalau untuk master-detail bagaimana urutan penulisan skrip nya? makasih udah boleh ikutan!
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 3 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 11 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 11 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 11 years ago
Random Topic
- Cara Form di klik X tidak tertutup/keluar
by onsir in MySQL more 16 years ago - load image ke paintbox
by imamnet86 in Hal umum tentang Pascal Indonesia more 14 years ago - Tabrakan di TADOConnection
by Akuna-Matata in Network, Files, I/O & System more 16 years ago - help query pake bde
by agoes in Tip n Trik Pemrograman more 16 years ago - Selamat Idul Fitri 1429 H
by LuriDarmawan in Hal umum tentang Pascal Indonesia more 15 years ago - MDI Child dalam DLL
by luckynvic in Enginering more 17 years ago - menampilkan isi database kedalam memo qreport
by ricky_seldjatem in Reporting more 15 years ago - Tanya Algoritma pencarian....
by AlbarHilal in Lain-lain more 16 years ago - Database Ngilang
by Chep_Rytheone in Paradox more 18 years ago - mencari tau jumlah hadir pada absen bulan yang telah lewat
by awing in Lain-lain more 12 years ago