■8670 / ) |
Re[2]: VB6クラスから.NETへの変換 |
□投稿者/ Jitta on the way (19回)-(2007/10/05(Fri) 19:06:37)
|
2007/10/05(Fri) 22:28:03 編集(投稿者)
■No8669 (エキサ さん) に返信 > 後は同じ処理をする関数に置き換えていけばいいだけ。 > ODP.NETの仕様を見ながら元ソースと見比べてやればできるはず。 >
たぶん、無理 ADO.NETは、名前こそ同じだけど、ADOと技術が違うから。
特に「必要です」の箇所。DataSet.Fillなどで、メモリ上に展開してしまって下さい。そのため接続も、できるだけ、メソッドを抜ける前に閉じて下さい。
追加::: > Private G_OraSs As Object 'Oracleセクション > Private G_OraDb As Object 'Oracleデータベース > Private G_OraRs As Object 'Oracleダイナセット この辺は、おそらく不要。ODP.NET をダウンロード&インストールして、リファレンスを読んでください。
> Private LFieldCount As Long 'SQLのフィールド数 > Private LRecordCount As Long 'SQLのレコード数 Structured Query Language(構造化問い合わせ言語)にフィールド数やレコード数はありません。「問い合わせ結果の」ですね。
> Public Property Get FieldCount() As Long > FieldCount = LFieldCount > End Property これは、こんな感じで。 Public Property FieldCount() As Long Get Return データセット.Columns.Count ' 後述 End Get End Property
> On Error Resume Next 'Error無視 これは削って、Try 〜 Finally で実装してください。必要なら、Catch もしてください。 詳しいことは、リファレンスを読んでください。
> 'Oracleセッション参照作成 > Set G_OraSs = CreateObject("OracleInProcServer.XOraSession")
> ■特にこの部分が知りたいです > データの前後を取りたいときなどがあるため、このような方法は必須なんです > '指定されたレコードを返す 「このような方法」は、不要になります。 ADO.NET は、非接続型のデータベース アクセス コンポーネントです。「非」接続なので、接続していません。接続していないので、ダイナセットのような「カーソルを戻す」操作は不要です。
では、どうするかというと、ローカルにデータテーブルのコピーができあがっています。そのコピーを操作します。 詳しくは、ADO.NET に関するリファレンス、DataTable や Datacolumn, DataRow のリファレンスを読んでください。
|
|