MySQL bağlanma süresi ve bağlı kalma Yardım

Katılım
11 Nisan 2009
Mesajlar
43
Excel Vers. ve Dili
2010 TR
MySQL veri tabanına VBA ile bağlantı kuruyorum. Bağlanma süresi uzun olduğundan, dosya açılırken bir kez bağlantı kuruyorum, sonra diğer işlemler o bağlantı üzerinden yürüyor, ancak bir yerde takıldım.

Kod:
Global oConn As ADODB.Connection
Global rs As ADODB.Recordset
Global sorguizin As String
İle genel tanımlama yapıyorum.

Kod:
Set rs = New ADODB.Recordset
Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=xx.xxx.x.xxx;" & _
"PORT=xxxx;" & _
"DATABASE=databaseeee;" & _
"USER=roottttt;" & _
"PASSWORD=123456;" & _
"Option=3"
sorguizin = "belli mysql sorguları"
rs.Open sorguizin, oConn, adOpenStatic
Kodları ile Workbook open kısmında bağlantı kuruyorum.

Bu noktadan sonra INSERT yaptığımda bağlantıda sorun yokken (işlem 1sn'nin altında sürüyor), SELECT ile veri çekmeye çalıştığımda yeniden bağlantı istiyor. Neden olabilir?

Daha ayrıntılı açıklamam gerekirse; Aşağıdaki SELECT sorgusu, Workbook open'de açılan bağlantıyı kullanıyor (işlem kısa sürüyor), ancak ikinci defa çalıştırdığımda yine bağlantı istiyor.

Kod:
Sub SORGUU()
Worksheets("SZ").Cells.ClearContents
TCno = "47704881421"
sorguizin = "SELECT * FROM kayitlar WHERE TC_KimlikNo=" & TCno & " AND Kullanici='Usserr'"
On Error GoTo baglan:
rs.Open sorguizin, oConn, adOpenStatic
GoTo atla:
baglan:
Call ConnectSQL
rs.Open sorguizin, oConn, adOpenStatic
atla:
oConn.Execute sorguizin
Dim myArray() 'bu satırdan şüpheleniyorum, ancak çözemedim
myArray = rs.GetRows()
sutun = UBound(myArray, 1)
satir = UBound(myArray, 2)
For k = 0 To sutun ' Using For loop data are displayed
Worksheets("SZ").Range("A1").Offset(0, k).Value = rs.Fields(k).Name
For R = 0 To satir
Worksheets("SZ").Range("A1").Offset(R + 1, k).Value = myArray(k, R)
Next
Next
son:
End Sub
Teşekkürler.
 
Son düzenleme:
Üst