Author Topic: Koneksi MySQL Terputus  (Read 5667 times)

0 Members and 1 Guest are viewing this topic.

Offline rnd

  • Hero Member
  • *
  • Posts: 1.283
Re: Koneksi MySQL Terputus
« Reply #15 on: November 17, 2010, 09:34:00 PM »
akhirnya untuk bisa nyambung lagi harus KILL dulu koneksi user tersebut terlebih dulu.
killnya dari server ya, soalnya max connection cuma 1, kalo 2 aja bisa seperti ini
- select connection_id() as konid
- connect kembali
- kill konid
« Last Edit: November 17, 2010, 09:39:16 PM by rnd »

Offline Antie

  • Full Member
  • *
  • Posts: 75
Re: Koneksi MySQL Terputus
« Reply #16 on: December 06, 2010, 08:47:25 AM »
@WPN:
Kayaknya nyambung nih sama topik (thread anda) yg di sebelah.

Karena sering mengalami hal yg anda alami itulah maka saya lalu memutuskan untuk memakai class.
Coba diperhatikan logikanya

DEFINE CLASS CConnection AS Custom
  nHandle=0
  cConnectionString=[]

  FUNCTION Connect
    this.Disconnect()
    ...
    this.nHandle = SQLSTRINGCONNECT(this.cConnectionString)
  ENDFUNC
 
  FUNCTION Disconnect
  ENDFUNC

  FUNCTION Execute(cSQLString, cOutputCursor)
    LOCAL lnResult, lnODBCError
    ...
    lnResult = SQLEXEC(this.nHandle, cSQLString, cOutputCursor)
    IF lnResult < 0
      =AERROR(laError)
      lnODBCError = laError[5]
      *!*
      *!* tangkap errornya dan coba untuk re-koneksi
      *!*
      IF (lnODBCError = 14) AND this.Connect()
        lnResult = SQLEXEC(this.nHandle, cSQLString, cOutputCursor)
        ...
      ENDIF
    ENDIF
    ...
  ENDFUNC

ENDDEFINE


Dari potongan kode diatas bisa kita lihat bahwa, apapun kejadiannya yg menyebabkan error maka object akan mencoba melakukan ulang koneksi, itu makanya melalui class diatas kita tidak perlu berhubungan langsung dgn 'HANDLE' koneksi, hanya merujuk ke objek nya saja. Urusan handle, ya si objeck yg meng'handle'nya.  :icon_biggrin:


CMIIW
 :thumbsup:

Gimana cara penggunaannya ya mas ?
saya masih awam dengan koding class seperti itu... mohon dibantu ya...
Terimakasih.

Offline onytoo

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 1.032
Re: Koneksi MySQL Terputus
« Reply #17 on: December 07, 2010, 08:01:21 AM »
@antie:
cara pakainya gampang saja...

agar tidak berulang kali melakukan koneksi secara manual, cukup dilakukan di awal program aja
contoh:

*!* main program
LOCAL cConnectionStr
cConnectionStr = isi_dengan_string_koneksi_anda__(yg_ini_sudah_bisa_khan?)

*!* ini akan ada terus selama program anda berjalan
*!* jika terjadi kesalahan koneksi / putus, akan otomatis di konekkan lagi
*!* jadi gak perlu lakukan koneksi ulang secara manual
*!* intinya adalah: satu aplikasi satu koneksi
PRIVATE oMySQL
oMySQL = CREATEOBJECT("CConnection",  cConnectionStr)

....

*!* contoh pemakaian, ini bisa dimana aja di program anda
TEXT TO cSQL TEXTMERGE NOSHOW PRETEXT 2
  SELECT * FROM my_table WHERE 0=1
ENDTEXT

oMySQL.Execute(cSQL, "my_cursor")

BROWSE


CTT:
- Method Init
    LPARAMETERS cConnectionStr
    this.cConnectionString = cConnectionStr

- Method Connect bisa ditambahin pengaturan property SQL (lihat fungsi SQLSETPROP di help vfp),
  dan pengaturan property cursor (lihat fungsi CURSORSETPROP di help vfp)

- Method Disconnect cukup diisi dgn:
   SQLDISCONNECT(this.nHandle)

Silahkan dicoba dulu sambil belajar...ya?
Dan kalau mau, tambahin tuh seperti yg sdr Rnd lakukan (pake KILL).

 :thumbsup:

Long life Visual FoxPro...

Online AmirS

  • Junior Member
  • *
  • Posts: 114
Re: Koneksi MySQL Terputus
« Reply #18 on: December 07, 2010, 03:17:28 PM »
@WPN:
Kayaknya nyambung nih sama topik (thread anda) yg di sebelah.

Karena sering mengalami hal yg anda alami itulah maka saya lalu memutuskan untuk memakai class.
Coba diperhatikan logikanya

DEFINE CLASS CConnection AS Custom
  nHandle=0
  cConnectionString=[]

  FUNCTION Connect
    this.Disconnect()
    ...
    this.nHandle = SQLSTRINGCONNECT(this.cConnectionString)
  ENDFUNC
 
  FUNCTION Disconnect
  ENDFUNC

  FUNCTION Execute(cSQLString, cOutputCursor)
    LOCAL lnResult, lnODBCError
    ...
    lnResult = SQLEXEC(this.nHandle, cSQLString, cOutputCursor)
    IF lnResult < 0
      =AERROR(laError)
      lnODBCError = laError[5]
      *!*
      *!* tangkap errornya dan coba untuk re-koneksi
      *!*
      IF (lnODBCError = 14) AND this.Connect()
        lnResult = SQLEXEC(this.nHandle, cSQLString, cOutputCursor)
        ...
      ENDIF
    ENDIF
    ...
  ENDFUNC

ENDDEFINE


Dari potongan kode diatas bisa kita lihat bahwa, apapun kejadiannya yg menyebabkan error maka object akan mencoba melakukan ulang koneksi, itu makanya melalui class diatas kita tidak perlu berhubungan langsung dgn 'HANDLE' koneksi, hanya merujuk ke objek nya saja. Urusan handle, ya si objeck yg meng'handle'nya.  :icon_biggrin:


CMIIW
 :thumbsup:

Tks mas Onytoo atas postingannya , tapi bisa gak kalo class tsb dilengkapi sekalian soal nya saya liat ada titik2 nya saya kurang ngerti juga ... kalo bisa sekalian class yg udah jadi mas spy kita bisa lsg pake....

Ini saya minta tolong mass, tks

 


Offline onytoo

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 1.032
Re: Koneksi MySQL Terputus
« Reply #19 on: December 07, 2010, 05:12:35 PM »
@AmirS, @all:
Tanda titik2 pada contoh class diatas hanya berupa setingan untuk keperluan internal saya saja,
Jadi kl gak ada gak apa2. Coba saja tanda titik2 tsb di abaikan (dihilangkan), insyaAllah jalan koq.
Plus, lebih baik lakukan hal2 yg ada di catatan di pos saya sblm ini.

Saya kira lebih baik belajar dari potongan2 kode dari pada yg sudah jadi, sehingga kita mau belajar dan bisa memahami apa maksud dan logika dari kode tersebut. Saya harap anda mengerti, karena itu metoda saya untuk membagi ilmu sambil memberi motivasi untuk berkreasi dan mengasah logika. Setuju?  :)

Kalau kodenya sudah dipahami, kan mungkin saja anda2 semua bisa bikin yg lebih hebat dari itu. Dan itu yg saya mau, anda semua bisa LEBIH HEBAT dari yg sekarang ini.


 :thumbsup: OK, guys...

Regards,
Onytoo.
Long life Visual FoxPro...

Online AmirS

  • Junior Member
  • *
  • Posts: 114
Re: Koneksi MySQL Terputus
« Reply #20 on: December 08, 2010, 08:22:16 PM »
@AmirS, @all:
Tanda titik2 pada contoh class diatas hanya berupa setingan untuk keperluan internal saya saja,
Jadi kl gak ada gak apa2. Coba saja tanda titik2 tsb di abaikan (dihilangkan), insyaAllah jalan koq.
Plus, lebih baik lakukan hal2 yg ada di catatan di pos saya sblm ini.

Saya kira lebih baik belajar dari potongan2 kode dari pada yg sudah jadi, sehingga kita mau belajar dan bisa memahami apa maksud dan logika dari kode tersebut. Saya harap anda mengerti, karena itu metoda saya untuk membagi ilmu sambil memberi motivasi untuk berkreasi dan mengasah logika. Setuju?  :)

Kalau kodenya sudah dipahami, kan mungkin saja anda2 semua bisa bikin yg lebih hebat dari itu. Dan itu yg saya mau, anda semua bisa LEBIH HEBAT dari yg sekarang ini.


 :thumbsup: OK, guys...

Ok tks , saya akan coba mas onytoo mudah2an jalan...

Regards,
Onytoo.

Online AmirS

  • Junior Member
  • *
  • Posts: 114
Re: Koneksi MySQL Terputus
« Reply #21 on: December 09, 2010, 01:52:47 PM »
@AmirS, @all:
Tanda titik2 pada contoh class diatas hanya berupa setingan untuk keperluan internal saya saja,
Jadi kl gak ada gak apa2. Coba saja tanda titik2 tsb di abaikan (dihilangkan), insyaAllah jalan koq.
Plus, lebih baik lakukan hal2 yg ada di catatan di pos saya sblm ini.

Saya kira lebih baik belajar dari potongan2 kode dari pada yg sudah jadi, sehingga kita mau belajar dan bisa memahami apa maksud dan logika dari kode tersebut. Saya harap anda mengerti, karena itu metoda saya untuk membagi ilmu sambil memberi motivasi untuk berkreasi dan mengasah logika. Setuju?  :)

Kalau kodenya sudah dipahami, kan mungkin saja anda2 semua bisa bikin yg lebih hebat dari itu. Dan itu yg saya mau, anda semua bisa LEBIH HEBAT dari yg sekarang ini.


 :thumbsup: OK, guys...

Regards,
Onytoo.

Mas Onytoo , setelah nanti malam saya coba ternyata harus ada yg ditambahkan juga scripnya  seperti ini :

DEFINE CLASS CConnection AS Custom
  nHandle=0
  cConnectionString=[]

  FUNCTION Init
  LPARAMETERS cConnectionStr
       this.cConnectionString = cConnectionStr
      this.Connect()
  ENDFUNC

  FUNCTION Connect
    this.Disconnect()
    this.nHandle = SQLSTRINGCONNECT(this.cConnectionString)
  ENDFUNC
 
  FUNCTION Disconnect
  =SQLDISCONNECT(this.nHandle)
  ENDFUNC

  FUNCTION Execute(cSQLString, cOutputCursor)
    LOCAL lnResult, lnODBCError
    ...
    lnResult = SQLEXEC(this.nHandle, cSQLString, cOutputCursor)
    IF lnResult < 0
      =AERROR(laError)
      lnODBCError = laError[5]
      *!*
      *!* tangkap errornya dan coba untuk re-koneksi
      *!*
      IF (lnODBCError = 14) AND this.Connect()
        lnResult = SQLEXEC(this.nHandle, cSQLString, cOutputCursor)
        ...
      ENDIF
    ENDIF
    ...
  ENDFUNC

ENDDEFINE

Tapi terimakasih mas atas share ilmu nya , saya jadi tambah pede nich pake database MySQL , sekali lagi tks ... kiranya Tuhan yg membalas kebaikan hari mas Onytoo

Offline ari_chandra

  • Junior Member
  • *
  • Posts: 358
    • www.ariechandra.blogspot.com
Re: Koneksi MySQL Terputus
« Reply #22 on: December 10, 2010, 12:38:43 AM »
Mas-mas... itu cara pakenya gmana y? mohon maaf y soalnya saya masih belajar sih...  :icon_biggrin:
Ari Chandra

Offline onytoo

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 1.032
Re: Koneksi MySQL Terputus
« Reply #23 on: December 10, 2010, 05:52:16 AM »
 :sleepy2: ..... :sad5:
Bangun tidur eh kepaagiaaaaaan...
Males mandi, enaknya ngee-neeeet..


@AmirS:
NAH!!!! Tu khan bisa juga  :thumbsup: mantaaaaap.
Berarti anda memang mempelajari kode nya dengan seksama dan tau dimana yg harus ditambahin
Salut-salut... (senang hati saya)

@Antie:
Kalau belum bisa, tuh dikasih info sama mas AmirS.
Silahkan lengkapin dan tambahin sendiri segala macam property yg anda butuhkan

@Ari_Candra:
Baca dari post paling atas, anda akan lihat pertanyaan anda sudah terjawab.


CTT:
Pada dasarnya, class di atas sudah cukup, tapi kalau untuk aplikasi professional sebaiknya ditambahin setingan2 tertentu, saya sudah kasih hint-nya di post saya sebelum ini (SQLSETPROP/CURSORSETPROP), coba diperhatikan lagi dan pelajari fungsinya di VFP help.


Selamat berkreasi sobat2...
 :thumbsup:

Regards,
Onytoo

Long life Visual FoxPro...

Offline abunuralif

  • Full Member
  • *
  • Posts: 56
Re: Koneksi MySQL Terputus
« Reply #24 on: December 14, 2018, 03:10:20 PM »
Class ini diletakkannya di Main Program project kita atau dibuat di masing-masing yang butuh data?