掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
バインド変数について (ID:119766)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんちは。 SQL文からDynasetを作成する機能を作成している途中なのですが・・・、 難解な問題が出てきたので皆さんのお力をお借りしたいと投稿しました。 データベース:Oracle8i アプリケーション:VB6 - OO4O接続 <メイン関数> Public Sub DynasetCreate(ByVal sql As String, ByVal dbconnection As OraDatabase) '◆ダイナセットの作成 Set Dynaset = dbconnection.CreateDynaset(sql, ORADYN_DEFAULT) End Sub <正常に稼動が確認しているSQL文> SELECT distinct A.NO , B.ITEM FROM A_TABLE A, B_TABLE B WHERE A.CONECT_ID = B.CONECT_ID AND A.NO = :ナンバー AND B.ITEM = :アイテム <問題のSQL文> SELECT distinct A.NO , B.ITEM FROM A_TABLE A, B_TABLE B WHERE A.CONECT_ID = B.CONECT_ID AND A.NO = :ナンバー AND B.ITEM IN (:アイテム) <仕様上の前提条件> ・CreateDynasetしか使用できません。SQL文を関数に渡しDynasetに戻す関数です。 ・パフォーマンスの関係上SQL文の形式を書き換えたり固定値を持たすことはせずバインド変数を使用するきまりです。 ※今回の問題点 バインド変数として受け渡す値:アイテム が複数あるためIN句を使用したいのですが、 複数の値の受け渡し方がわからず困ってます。(アイテムの数は毎回変わります) バインド変数の引渡しで addtable を利用したバインド配列なども考えたのですが CreateDynaset を利用した場合の結果の受け渡しがわからず断念しました・・・。 ・addtable を利用した方法はストアドプロシージャを作って実現できないかを検討しました。 今では正常に稼動しているSQL文を複数回実行して結果取得するしか方法はないのでは・・・。 っと気持ち的には傾きかけているのですが・・・、その前に皆様のお力をお借りしようかと思いまして。。。 なにか良い方法等ありましたお力をお貸しください。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.