C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 20 を表示中)
■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 のリファレンスを読んでください。

返信 編集キー/


管理者用

- Child Tree -