- PR -

VB6のデータグリッド

投稿者投稿内容
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2008-03-26 15:36
私の開発環境
Database:Oracle10g 10.2.0.3.0
Client:Oracle10g 10.2.0.3.0
Windows2000 SP4
Visual Basic 6.0 SP5

VisualBasic6.0のデータグリッドについてですが、
今、ある入力アプリがありまして、その機能の一つに、
データグリッドを利用して、オラクルからのデータやアクセスからのデータ
を表示させようとしています。

しかし、どうしてなのか、グリッド上にデータが表示されません。


ちなみに、このプログラムを他の環境にて起動させると、グリッド上に
データは表示されます。
[他の環境]
DATABASEは同じもの
Client:Oracle8i
Windows2000 SP4
Visual Basic 6.0 SP5


下記のサイトのことも実行したのですが、うまくいきません。
http://support.microsoft.com/kb/193094/ja


私のPCでは、前は、Oracle8iを入れていたのですが、現在は、
Oracle10gにUpgradeしております。また、VBもVB2005を追加でインストして
おります。こういったことも影響しているのでしょうか・・・?
(他の環境は、Oracle8i,VB6のみ。)

以上、何かしらのアドバイスをご教授できましたら、幸いです。



ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-03-26 16:21
ご参考までに。
  Oracle の各種バージョン毎の接続可否一覧表

#昨日も同じ URL を貼ったなぁ(^_^;)
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2008-03-26 16:57
ひろれい様、ご返信ありがとうございました。
参考にさせて頂きます。


補足といたしまして、このプログラムは、
・OLEDBを使用して、接続をおこなっている。(Provider=OraOLEDB)
・プログラム中のSQLでは、データ取得は成功している。

ADODCコントロールの.Refresh後に、データグリッドに表示されると
思っているのですが・・・。

仮にデータグリッドのプロパティの設定に不備があるとしたら、
どこがいけない箇所なのか、ちょっと検討が付かない状況でございます。

ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-03-26 17:19
引用:

IPホンさんの書き込み (2008-03-26 16:57) より:

補足といたしまして、このプログラムは、
・OLEDBを使用して、接続をおこなっている。(Provider=OraOLEDB)
・プログラム中のSQLでは、データ取得は成功している。

ADODCコントロールの.Refresh後に、データグリッドに表示されると
思っているのですが・・・。

仮にデータグリッドのプロパティの設定に不備があるとしたら、
どこがいけない箇所なのか、ちょっと検討が付かない状況でございます。


Oracle10g のデータベースに対して、Oracle8i Client がインストールされている端末では正しく動作するが、Oracle10g Client がインストールされている端末ではダメってことですね。
すいません、先程のリンクはあまり意味をなさないですね。

デバッグして、エラーとか返ってきてはいませんか?

Oracle10g Client の端末で、参照設定をし直して EXE ファイルを作成してから実行してもダメですかね?

Oracle 関係の環境のせいだと思うのですが。
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2008-03-26 17:44
ひろれい様、ご返信ありがとうございます。

他の環境で実行した場合は、特に問題なく動いております。


また、デバッグしても特に、エラーは返ってきません。

参照設定を確認してから、再度、実行もしましたが、うまくいきませんね。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-03-27 10:19
引用:

IPホンさんの書き込み (2008-03-26 17:44) より:

ひろれい様、ご返信ありがとうございます。

他の環境で実行した場合は、特に問題なく動いております。

また、デバッグしても特に、エラーは返ってきません。

参照設定を確認してから、再度、実行もしましたが、うまくいきませんね。


私の環境で試してみましたが、動作しますね。

<テストした環境>
WindowsXP SP2
Oracle10g(10.2.0.1.0)
VB6 SP6

テスト方法は、Visual Basic 6.0データアクセス新機能(後編)を参考に実施しました。

コンポーネントとして

・Microsoft DataGrid Control6.0(SP6)
・Microsoft ADO Data Control6.0(SP6)

を追加し、上記 2 コンポーネントを Form 上に配置し、以下のプロパティ設定しました。
コードは何も記述していません。

・DataGrid の DataSource プロパティに ADODC コントロールを設定
・ADODC の ConnectionString を設定
・ADODC のRecordSource に SELECT 文を設定

IPホンさんの説明内に「ADODC」とありますが、ADO 接続なんですかね。
上記ページにありますが、ADO と DataGrid の相性はあまりよくないみたいですね。

何が原因なんでしょうね。
私のように必要最低限のテストは可能でしょうか?
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2008-03-27 11:18
ひろれい様、ご返信ありがとうございます。

別途テスト環境として、空のフォームに、DATAGRIDとADODCの各コントロールを
配置して、やってみましたが、なぜか結果は表示されないですね・・・。

<おこなった事>
・空のフォームに各コントロールを配置。
・ADODCプロパティ内の、ConnectionStringを設定。
(Provider=OraOLEDBでもProvider=MSDAORAでもダメ。)
・また、RecordSource内に任意のSelect文を記載。
・DataGridプロパティ内の、DataSourceにadodcを設定。
・また、DataGridコントロール上にて、右クリック後、フィールドの更新をした。

以上でも、データは表示されませんでした。

参照設定は、特にいじる必要はありますでしょうか??


それから、%ORACLE_HOME%\oledb\readme.txt内に、Microsoft Visual Basic6.0 Notes
があり、参照設定にActiveX Data ObjectsとActiveX Data Objects Recordset(Verは
共に、2.8)をインクルードするとありましたので、そうしてもダメでした。


SP5ではなく、SP6へupgradeする必要があるんでしょうか??
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-03-27 11:57
引用:

IPホンさんの書き込み (2008-03-27 11:18) より:

ひろれい様、ご返信ありがとうございます。

別途テスト環境として、空のフォームに、DATAGRIDとADODCの各コントロールを
配置して、やってみましたが、なぜか結果は表示されないですね・・・。

<おこなった事>
・空のフォームに各コントロールを配置。
・ADODCプロパティ内の、ConnectionStringを設定。
(Provider=OraOLEDBでもProvider=MSDAORAでもダメ。)
・また、RecordSource内に任意のSelect文を記載。
・DataGridプロパティ内の、DataSourceにadodcを設定。
・また、DataGridコントロール上にて、右クリック後、フィールドの更新をした。

以上でも、データは表示されませんでした。

参照設定は、特にいじる必要はありますでしょうか??

それから、%ORACLE_HOME%oledbreadme.txt内に、Microsoft Visual Basic6.0 Notes
があり、参照設定にActiveX Data ObjectsとActiveX Data Objects Recordset(Verは
共に、2.8)をインクルードするとありましたので、そうしてもダメでした。

SP5ではなく、SP6へupgradeする必要があるんでしょうか??


気になった点が 1 点。

ADODC の ConnectionString は当方では、
「Provider=MSDASQL.1;Password=hoge;Persist Security Info=True;User ID=hoge;Data Source=DSN名」
となっています。
自分で記述したわけではなく、ADODC のプロパティ画面で「作成」ボタンで作成した状態のままです。

参照設定は、

・Oracle Data Control(oradc.oca)
・Microsoft Data Binding Collection VB6.0(SP4) ←自動的に付与される

ですね。

サービスパックが関係しているかどうかまではちょっと分かりませんね(^_^;)
SP5 で動作する環境があるのであれば、問題ないと思うのですが・・・

スキルアップ/キャリアアップ(JOB@IT)