mysqlをODBC経由でアクセスするとメモリリークが?

解決


mopu  2004-07-12 22:35:05  No: 84546  IP: [192.*.*.*]

LinuxサーバーにインストールしてあるmysqlをODBC経由でADOを使いVBからアクセスするプログラムを作っています。
すでにアクセス自体はできているのですが、ODBCドライバのオプションで「EUC変換する」をチェックし、
しばらくDBにアクセスしていると未使用メモリがどんどん減っていきます。
同じような現象を体験した方がいたら解決方法を教えてもらえないでしょうか?

環境構成
--------------------------------------------------------------
Linuxサーバー  RedHatLinux7.3
DB            mysql4.1.1

開発機         Win98
VB            ver6.0SP6
MDAC          ver2.8

クライアント   WinXP pro
ODBC          myODBC3.51.06(myodbc-3.51.06-conv_ujisパッチ使用)
VBランタイム   SP6適応最新バージョン
--------------------------------------------------------------

テストソース
--------------------------------------------------------------
Dim connection As New ADODB.connection

Private Sub Form_Initialize()

    Set connection = CreateObject("ADODB.Connection")    
    connection.Open "DSN=testDB"
    
End Sub

Private Sub Form_Load()

    Dim i As Integer

    For i = 0 To 18
        Dim rs As New ADODB.Recordset
        Set rs = connection.Execute("SELECT * FROM test01")
        rs.Close
    Next i
    
End Sub

Private Sub Timer1_Timer()
    Form_Load
End Sub

Private Sub Form_Unload(Cancel As Integer)

    connection.Close
    
End Sub
--------------------------------------------------------------
※1秒ごとにForm_Loadを呼んでいます

編集 削除
DAN  2004-07-13 13:33:14  No: 84547  IP: [192.*.*.*]

ソースを見てもいまいち何がしたいのわかりませんが、
たしかCloseしただけではメモリからは削除されなかったと思います。
connection.Closeの後に以下を記述しても変わりませんか?

Set connection = Nothing

編集 削除
DAN  2004-07-13 13:42:46  No: 84548  IP: [192.*.*.*]

>connection.Closeの後に以下を記述しても変わりませんか?
>
>Set connection = Nothing
↑間違い
(正)Set rs = Nothing

編集 削除
mopu  2004-07-13 18:24:40  No: 84549  IP: [192.*.*.*]

DANさん返信ありがとうございます

いろいろ試していると原因が見え始めてきました。
mySQLODBCの設定で「EUC変換する」のチェックを外すとメモリリークがなくなりました。
当然ながら日本語が化けてしまうようになるのですがこれはVBの中でEUC→S_JIS変換でどうにかしようと思っています。

VB側の問題というよりかはODBCの方が問題だったみたいです。
微妙な板違い失礼しました。

編集 削除