by マティ » 2005年8月31日(水) 14:03
実践コードモジュールに
hanchanさんが投稿された
データベースアクセスクラスサンプルを元にODBC接続を行っています。
Activebasic 4.04
各APIの意味をネットで検索をしていると
SQLBindCol()を使用すると性能が改善できるような書き込みがあったので実装を試みましたが、うまくいきません。
SQLFetch()で
アクセス違反がありましたとエラーになります。
SQLBindCol()の定義かパラメータを間違えていると思うのですが、
どのように修正したら良いかが分かりません。
助けて下さい。
コード: 全て選択
Declare Function SQLBindCol Lib "odbc32.dll" ( _
ByVal hstmt As HANDLE, _
ByVal icol As Integer, _
ByVal fCType As Integer, _
ByVal rgbValue As String, _
ByVal cbValueMax As Long, _
ByRef pcbValue As Long _
) As Integer
DIM JUMICD As DWord
Dim xTest As Long
SQLExecDirect( hstmt, psSqlStr, SQL_NTS )
SQLBindCol ( hstmt, 1, SQL_INTEGER, JUMINCD, 0, xTest )
SQLFetch ( hstmt )
ちなみに
コード: 全て選択
DIM JUMICD As DWord
SQLExecDirect( hstmt, psSqlStr, SQL_NTS )
SQLFetch ( hstmt )
SQLGetData ( hstmt, 1, SQL_INTEGER, VarPtr(JUMINCD), 0, RetByteSize )
ではちゃんとデータを取得出来ました。
実践コードモジュールに[b]hanchan[/b]さんが投稿された
[b]データベースアクセスクラスサンプル[/b]を元にODBC接続を行っています。
Activebasic 4.04
各APIの意味をネットで検索をしていると
[b]SQLBindCol()[/b]を使用すると性能が改善できるような書き込みがあったので実装を試みましたが、うまくいきません。
[b]SQLFetch()[/b]で[color=red]アクセス違反がありました[/color]とエラーになります。
[b]SQLBindCol()[/b]の定義かパラメータを間違えていると思うのですが、
どのように修正したら良いかが分かりません。
助けて下さい。
[code]
Declare Function SQLBindCol Lib "odbc32.dll" ( _
ByVal hstmt As HANDLE, _
ByVal icol As Integer, _
ByVal fCType As Integer, _
ByVal rgbValue As String, _
ByVal cbValueMax As Long, _
ByRef pcbValue As Long _
) As Integer
DIM JUMICD As DWord
Dim xTest As Long
SQLExecDirect( hstmt, psSqlStr, SQL_NTS )
SQLBindCol ( hstmt, 1, SQL_INTEGER, JUMINCD, 0, xTest )
SQLFetch ( hstmt )
[/code]
ちなみに
[code]
DIM JUMICD As DWord
SQLExecDirect( hstmt, psSqlStr, SQL_NTS )
SQLFetch ( hstmt )
SQLGetData ( hstmt, 1, SQL_INTEGER, VarPtr(JUMINCD), 0, RetByteSize )
[/code]
ではちゃんとデータを取得出来ました。