- ベストアンサー
ADO+ODBCでテーブルに接続する際のエラー
- VB6.0(SP6)からADOとODBCでMySQLに接続しようとした際に発生するエラーについて教えてください。
- データグリッドコントロールにテーブルの内容を表示させるために、rs.Openの行で発生するエラーについて教えてください。
- DECIMALのカラムが含まれている場合にエラーが発生する理由について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
はじめまして 私も前にデータグリッドにテーブルの内容を表示できなくて困ってました。 私の使ってたプログラムを書きますね。 'モジュールレベル変数宣言 Private cn As ADODB.Connection 'Connectionオブジェクト Private rs As ADODB.Recordset 'Recordsetオブジェクト 'フォームの起動時 Private Sub form_load() 'MySQL4.1データベース接続 Set cn = New ADODB.Connection cn.Open "Provider=MSDASQL.1;Password=;User ID=root;Data Source=test123" 'SQLステートメント Dim mySQL As String '表示するテーブルの決定 mySQL = "select * from test123" 'レコードセットを取得 Set rs = New ADODB.Recordset rs.ActiveConnection = cn rs.Source = mySQL rs.CursorLocation = adUseClient '←●ここがポイント rs.CursorType = adOpenStatic rs.LockType = adLockOptimistic rs.Properties("IRowsetIdentity") = True rs.Open 'データグリッドにコントロールに連結 Set DataGrid1.DataSource = rs end sub
お礼
ご回答ありがとうございます。 jpgifさんのコードをコピペして実行しましたが、残念ながら同じエラーが出てしまいます(rs.Openで「複数ステップの操作で~」)。SELECT文のカラムに、データ型がDECIMAL以外のものを指定するとエラーが出なくなります。 ちなみに私の環境です。 データベース: MySQL-server-5.0.18-0 サーバー: VineLinux3.2 ODBC: MyODBC 3.51 チェックしているODBCのオプション: Don't Optimize Column Width Return Matching Rows Change BIGINT Columns To Int 問題のカラム: Type = decimal(8,0) Null = yes Key = Default = Extra =