VB6、MySQL5、ODBC5.1です。
サンプルから見よう見真似で下記のコードでストアドプロシージャ
をCALLしています。(ストアドプロシージャ自体は引数も戻り値も無い
類のものです)
←部分でエラーが発生します。コードの誤りを指摘頂ければ幸いです。
Dim cmd As ADODB.Command
Dim Rs As ADODB.Recordset
Dim lRow As Long
Set cmd = New ADODB.Command
Set Rs = New ADODB.Recordset
cmd.ActiveConnection = Cnn
cmd.CommandText = "PRCVIEW"
cmd.CommandType = adCmdStoredProc
Set Rs = cmd.Execute '←ここでエラー発生
If Rs.BOF Then
MsgBox "レコードなし"
End If
エラー内容は以下のとおりです。
[MySQL][ODBC 5.1 Driver][mysqld-5.0.27-community-nt]
You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to
use near '' at line 1
以上です、よろしくお願い致します。
http://bugs.mysql.com/bug.php?id=15635
は、確認済みですか?(厳密にはVBに関係ないですが)
もげさん、レスありがとうございます。
ご指摘のページの[9 Dec 2005 14:02]での発言に
ADOを使用してMySQL5にアクセスした場合に発生云々・・とありまして
[6 Nov 2006 16:47] での発言では「このバグはFix云々・・」とありま
す。
そこで新しい(と思われる)ODBCドライバ3.51.23をダウンロードして
再度実行してみましたが、同様の結果でした。
自己レスです。
下記のようにコードを弄ってみたところ、エラーが回避できるようには
なりました。
(ただコーディングとしてこれが正しいかどうか分かりませんが・・)
Dim cmd As ADODB.Command
Dim Rs As ADODB.Recordset
Dim lRow As Long
Set cmd = New ADODB.Command
Set Rs = New ADODB.Recordset
cmd.ActiveConnection = Cnn
cmd.CommandText = "PRCVIEW()" '←「()」を付ける
' cmd.CommandType = adCmdStoredProc '←コメントアウト
Set Rs = cmd.Execute
If Rs.BOF Then
MsgBox "レコードなし"
End If