2010/05/12

access2010 MySQL接続でのメモ

Option Compare Database
Option Explicit

Const cnString = "Driver={MySQL ODBC 5.1 Driver};" & _
                 "server=mySQLServer;" & _
                 "port=3306;" & _
                 "database=test;" & _
                 "uid=testuser;" & _
                 "pwd=password;"

Sub test()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    cn.Open cnString
    rs.CursorLocation = adUseClient
    rs.Open "select * from test_table;", cn
    Debug.Print "rs.RecordCount", rs.RecordCount, TypeName(rs.RecordCount)
    rs.Close: cn.Close
    Set rs = Nothing: Set cn = Nothing
End Sub
このコード実行結果:rs.RecordCount 31 LongLong
recordcountにはLongLongで値が戻る。

なので、格納先はLongPtrを使用/Longにキャスト/Variantで受けてDecimal。
64bit環境のみならばLongLong使用可。

<追記>
Win7SP1時点で、ADOに修正が入る。修正以降は、LongLongが戻らず、Longで戻る模様。

0 件のコメント: