Share this topic on FacebookShare this topic on MySpaceShare this topic on Del.icio.usShare this topic on DiggShare this topic on StumbleUponShare this topic on TwitterShare this topic on GoogleShare this topic on Yahoo

Author Topic: Connectionstring error jika 'dibungkus' dalam DLL  (Read 551 times)

0 Members and 1 Guest are viewing this topic.

Offline sinyonamakoe

  • Global Moderator
  • Hero Member
  • *
  • Thank You
  • -Given: 3
  • -Receive: 9
  • Posts: 1173
Connectionstring error jika 'dibungkus' dalam DLL
« on: March 05, 2010, 03:24:18 PM »
Dear All

Saya ada masalah pada connection string yang "dibungkus" dalam file dll, saya bermaksud untuk membuat daftar pustaka yang dikompile ke dalam file dll supaya lebih mudah dalam hal distribusi & update. OK, langsung saja ..

katakanlah, saya punya program myclass.prg, yang isinya :
Code: [Select]
Define Class gcstrings As Session Olepublic
  Function MySQL(cHost As String @,cDatabase As String @,cUser As String @,cPassw As String @)

    nHandle = 0
    cStrConn = ''

    cStrConn =  "DRIVER={MySQL ODBC 5.1 Driver};Port=3306"+;
                ";Server="+cHost+;
                ";Database="+cDatabase+;
                ";User="+cUser+;
                ";Password="+cPassw+;
                ";Option=3;"

     nHandle = SQLStringConnect(cStrConn)

    Return nHandle
  Endfunc
Enddefine

Implementasi saya pake langsung myclass.prg, berjalan mulus dan cursor 'res' terbentuk.
Code: [Select]
SET PROCEDURE TO myclass.prg ADDITIVE
GetConnStrings = CREATEOBJECT("gcstrings")
lnConn = GetConnStrings.MySQL("localhost","dataku","userku","passku")
SQLExec(lnConn,"select kode from tabel","res")

Terjadi error jika saya pake file dll hasil kompilasi myclass.prg, dan muncul pesan error "Connection handle is invalid"
Code: [Select]
GetConnStrings = CREATEOBJECT("myclass.gcstrings")
lnConn = GetConnStrings.MySQL("localhost","dataku","userku","passku")
SQLExec(lnConn,"select kode from tabel","res")

Kira-kira apa penyebabnya, mohon pencerahannya. Terima kasih.

Offline aris_ah

  • Junior Member
  • *
  • Thank You
  • -Given: 3
  • -Receive: 2
  • Posts: 207
    • http://www.indosmartsys.com
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #1 on: March 05, 2010, 04:08:46 PM »
mas sinyo...

seperti yang anda bilang ;
Quote
Implementasi saya pake langsung myclass.prg, berjalan mulus dan cursor 'res' terbentuk.

kenapa.... karena  lnConn  dan SPT anda dalam satu session..

tetapi klo anda buld jadi dll .... maka  Dll  tersebut akan membuat 1 session tersendiri
dan program pemanggil akan buat session sendiri, jadi mreka tidak akan saling mengenal.
ibaratnya... anda menjalankan 2 EXE yang berbeda...  A  dan B
maka  variabel apapun d A  isinya tidak akan dikenal di B..

CMIIW
regards



Offline sinyonamakoe

  • Global Moderator
  • Hero Member
  • *
  • Thank You
  • -Given: 3
  • -Receive: 9
  • Posts: 1173
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #2 on: March 06, 2010, 09:07:33 AM »
klo anda buld jadi dll .... maka  Dll  tersebut akan membuat 1 session tersendiri
dan program pemanggil akan buat session sendiri, jadi mreka tidak akan saling mengenal.
ibaratnya... anda menjalankan 2 EXE yang berbeda...  A  dan B
maka  variabel apapun d A  isinya tidak akan dikenal di B..


 :icon_thumleft:
@Kang aris_ah
Terima kasih masukannya, berarti metode koneksi (SPT) seperti diatas tidak dapat dibuild dalam DLL ya Kang ?

Untuk rekan2 yang lain ..saya masih tunggu juga pencerahannya. Terima kasih.

Offline foxever_fox

  • Hero Member
  • *
  • Thank You
  • -Given: 8
  • -Receive: 4
  • Posts: 1102
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #3 on: March 06, 2010, 09:13:02 AM »
Seharusnya bisa ya.....karena Function itu kan mengembalikan handle  , yg akan dipakai oleh Caller Modul untuk execute SPT.
Nanti saya coba deh mas sinyo...

Offline sinyonamakoe

  • Global Moderator
  • Hero Member
  • *
  • Thank You
  • -Given: 3
  • -Receive: 9
  • Posts: 1173
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #4 on: March 06, 2010, 10:48:21 AM »
Seharusnya bisa ya.....karena Function itu kan mengembalikan handle  , yg akan dipakai oleh Caller Modul untuk execute SPT.


Pikiran saya juga seperti itu Pak FF, koq return valuenya tidak dikenal, jika menyimak penjelasan kang aris..masuk akal juga  :icon_thumleft:, untuk rekan-rekan yang lain saya tunggu advicenya. Terima kasih

Offline armen

  • Junior Member
  • *
  • Thank You
  • -Given: 7
  • -Receive: 10
  • Posts: 161
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #5 on: March 06, 2010, 11:29:40 AM »
Mas Sinyo bikin sayembara/teka teki ya ?

Return value pasti sdh dikembalikan, tapi apalah artinya sebuah angka bagi pemanggil function itu, sementara cStrConn berada dalam modul myclass.DLL, sudah pasti Loading Driver ODBC juga modul myclass.DLL jadi masalahnya bukan return lnConn.

Hadiahnya apa neh?
Follow members gave a thank to your post:

Offline sinyonamakoe

  • Global Moderator
  • Hero Member
  • *
  • Thank You
  • -Given: 3
  • -Receive: 9
  • Posts: 1173
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #6 on: March 06, 2010, 11:36:21 AM »
Mas Sinyo bikin sayembara/teka teki ya ?


Hahaha ...enggaklah Pak. Armen, namanya masih pemula ...  :icon_study:, terima kasih Pak. Armen & Kang Aris, advice anda berdua sudah mencairkan sebagian otak saya yang lagi beku.. :icon_biggrin:, buat Pak. FF ..terima kasih dukungannya  :icon_salut:

Hadiahnya apa neh?


Hmmm... alamatnya pindah kemana nich .... ? supaya TIKI ga bingung nyarinya ...  :icon_biggrin:
« Last Edit: March 06, 2010, 11:42:13 AM by sinyonamakoe »

Offline davidmustakim

  • Fox-id M.V.P
  • Hero Member
  • *
  • Thank You
  • -Given: 1
  • -Receive: 22
  • Posts: 4599
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #7 on: March 06, 2010, 11:42:44 PM »
kalo urusan nebak kyknya mgkn gini:
tambahkan parameter ke-5 pada fungs mysql, mis. xnCon
pass parameter 'nConn'  ke parameter DLL by reference, eg. mysql(...,...,...@nConn)
dalam function: xnCon=nHandle, ga usah return

Offline sinyonamakoe

  • Global Moderator
  • Hero Member
  • *
  • Thank You
  • -Given: 3
  • -Receive: 9
  • Posts: 1173
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #8 on: March 08, 2010, 04:54:11 PM »
tambahkan parameter ke-5 pada fungs mysql, mis. xnCon
...
dalam function: xnCon=nHandle, ga usah return


Terima kasih Pak. DEM atas advicenya, sudah saya coba dan blm berhasil.

Dari beberapa pencerahan rekan2 diatas, metode distribusi+update aplikasinya sudah saya rubah, jadi thread ini saya anggap selesai. Terima kasih.

Offline poison

  • Hero Member
  • *
  • Thank You
  • -Given: 14
  • -Receive: 9
  • Posts: 712
  • Poison 4 Women
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #9 on: March 08, 2010, 06:07:28 PM »
coba ikut nimbrung...klo salah...maklum, Ikan teri masuk gerombolan ikan Paus.... :icon_biggrin:

selama yang pernah aq coba, VFP lebih bagus jika diterapin dengan metode Procedural, bukan OOP (walopun bisa, tapi tidak maksimal)...

seperti yg diungkapkan oleh om armen, klo masuk ke OOP, dia punya session sendiri, jangan kan dll, app ja g bisa kasih return value....(padahal anak kandung dari VFP)...

tapi untuk kasus ini, yg aq pake murni procedural, jika ingin memisah dengan Main Program, aq biasanya pake app (untuk trik, bisa direname dengan berbagai extensi)...

tinggal manggil fungsi ntu, beres dech....pasti bisa kasih return Value...

***
sori ikan teri lancang!... :icon_salut:
think BIG to get BIG
http://poison.site88.net

Offline sinyonamakoe

  • Global Moderator
  • Hero Member
  • *
  • Thank You
  • -Given: 3
  • -Receive: 9
  • Posts: 1173
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #10 on: March 09, 2010, 08:13:29 AM »
coba ikut nimbrung...klo salah...maklum, Ikan teri masuk gerombolan ikan Paus....


@poison
Kalo anda itu ikan paus pake seragam ikan teri  :icon_biggrin:

VFP lebih bagus jika diterapin dengan metode Procedural, bukan OOP (walopun bisa, tapi tidak maksimal)...


sip...sip  :icon_thumleft:

tapi untuk kasus ini, yg aq pake murni procedural, jika ingin memisah dengan Main Program, aq biasanya pake app (untuk trik, bisa direname dengan berbagai extensi)...


metode pemisahan ini sudah aku coba ke beberapa alternatif, di build jadi APP salah satunya..dah oke. tapi namanya orang 'keminter' (sok tahu), akhirnya coba di build ke DLL (supaya kelihatan keren)  ::), eh malah ga bisa ...hehehe.
Tapi dari kasus ini, ada pelajaran dan ilmu baru yang bisa aku dapat ...pencerahan dari anda dan rekan-rekan disini, ...dan itu sangat berharga sekali.

 :icon_thumleft:

Offline poison

  • Hero Member
  • *
  • Thank You
  • -Given: 14
  • -Receive: 9
  • Posts: 712
  • Poison 4 Women
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #11 on: March 11, 2010, 12:41:30 PM »
 :toothy4:......

om Sinyo dah sukses blom?!....kasih bocoran donk?!....
think BIG to get BIG
http://poison.site88.net

Offline davidmustakim

  • Fox-id M.V.P
  • Hero Member
  • *
  • Thank You
  • -Given: 1
  • -Receive: 22
  • Posts: 4599
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #12 on: May 29, 2010, 02:20:39 PM »
kemaren sempat kebaca masalah mungkin hampir serupa dan solusi yang diusulkan Bernard Bout kayaknya mengkompilasi com server vfp bukan ke .dll tapi ke .exe

Offline shee

  • Senior Member
  • *
  • Thank You
  • -Given: 0
  • -Receive: 1
  • Posts: 465
Re: Connectionstring error jika 'dibungkus' dalam DLL
« Reply #13 on: June 10, 2010, 06:18:52 PM »
ikan teri enak di goreng