現在クライアント側、Win2kPro(SP4)VB.net(2003 Framework1.1)を使用し、Linux(RedHat)のMySQL(3.23.58)にあるデータベースのあるテーブルからSelectした結果を表示したいと思っております。
※Win2kProにインストールされているMySQLはVer4.1.3です。
Win2kPRoにあるMySQLデータベースからは同じソースで、接続サーバー、ホスト名等を変更しただけで、こちらが思っている値を取得してくれます。
しかし、Linux側へ接続し取得し、Select文を実行しようとすると、「☆☆☆マーク」の個所でエラーが発生します。
*****ソース*****
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim strFunc As String
Dim strLOG As String
Dim strSQL As String
Dim valErr As VariantType
Dim DataBase As New Odbc.OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver}; " & _
"SERVER=" & pstrSVRName & ";" & _
"DATABASE=" & pstrDBName & ";" & _
"UID=" & pstrUsrID & ";" & _
"PWD=" & pstrUsrPass & ";" & _
"OPTION=3")
Dim SQLCommand As Odbc.OdbcCommand = DataBase.CreateCommand()
On Error GoTo ErrExit
'SQL作成
strSQL = "SELECT * FROM M_Syain where syain_cd = '100'"
SQLCommand.CommandText = strSQL
DataBase.Open()
Dim DataReader As Odbc.OdbcDataReader = SQLCommand.ExecuteReader() '☆☆☆エラー発生個所
Do While DataReader.Read
ListBox1.Items.Add(DataReader(0))
Loop
DataReader.Close()
DataBase.Close()
Exit Sub
ErrExit:
DataReader.Close()
DataBase.Close()
Error Err.Number
End Sub
*****ソース*****
Error Err.Numberにて表示されるエラーです。
*****エラー*****
'System.ArgumentException' のハンドルされていない例外が プログラム名 で発生しました。
追加情報 : プロシージャ呼び出しまたは引数が有効ではありません。
*****エラー*****
ちなみにLinux側へExecuteNonQuery()を実行し、Insertを行うとデータは正常に追加されています。
接続先のMySQLのバージョンの違いにより起こっていることなのでしょうか?
宣言したところで落ちるのが、いまいちよく分かりません。
Linux、VBともに今回勉強をし始めたので、理解できていない個所が多々あります。
どなたかお分かりになる方がいらっしゃいましたら、宜しくお願い致します。
すいません。
初歩的な個所で、ミスが発覚しました。
DBの開発者がテーブル名称を変更していたので、エラーが発生していたようです。
申し訳ありません。
以上、考えて下さった方々、ありがとうございました。
>ちなみにLinux側へExecuteNonQuery()を実行し、Insertを行うとデータは正常に追加されています。
では、これの説明がつかないんだけど?