DBアクセスでODBCのSQLBindCol()を使用いたい

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: DBアクセスでODBCのSQLBindCol()を使用いたい

by マティ » 2005年9月01日(木) 01:36

自己解決出来ましたので、報告します。
原因はAPIの定義でした!

コード: 全て選択


Declare Function SQLBindCol Lib "odbc32.dll" ( _
	ByVal hstmt      As HANDLE, _
	ByVal icol       As Long, _
	ByVal fCType     As Long, _
	ByRef rgbValue   As Any, _
	ByVal cbValueMax As Long, _
	ByRef pcbValue   As Long _
	) As Long

DBアクセスでODBCのSQLBindCol()を使用いたい

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 )
ではちゃんとデータを取得出来ました。

ページトップ