- PR -

クラスを使用する際のコネクションの閉じ方

投稿者投稿内容
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-09-05 11:41
引用:

うにくまさんの書き込み (2006-09-05 11:05) より:
VBではUsingステートメントは使用できません、C#のみ使用できます。

モンジさんはVB2003で開発していると記述されているので、
もし、VB2005での例を示すのであれば、
その旨を明記しないと混乱されると思いますよ?


そうでしたね。うっかりしていました^^;

じゃんぬねっとさん、コードの置き換えありがとうございました。

[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-09-05 11:42 ]
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2006-09-05 13:14
うにくまさん、Usingの件、フォローありがとうございます。

じゃんぬねっとさんと、R・田中一郎さんにアドバイスいただきましたが、
正直申しましていまいち分かっていません。

引用:

R・田中一郎さんの書き込み(2006-09-05 10:24)より
Dim DR As OracleDataReader
Using (DBC As New でえたべえすいろいろ)
DR = DBC.ReaderGet("SQL文")
あれこれやる・・・
End Using



まず、R・田中一郎さんのレスからですが、
「でえたべえすいろいろ」というのは、接続文字列のことですか?
(クラス側のコンストラクタに接続文字列を引数にして、
 コネクションをオープンさせると解釈しましたが・・・・。)

また、ReaderGetというのはメソッドですか?
(クラスDBのメソッドにReaderGetを追加して、
 戻り値にコマンドをExecuteReaderさせると解釈しましたが・・・。)

引用:

oRTanakaIchiro = New RTanakaIchiro("...")



次にじゃんぬねっとさんのレスですが、
上記クラスインスタンス化の("...")部分が理解できません。
(R・田中一郎さんの一つ目の質問と同じです。)

また、DR(OracleDataReader)が無いのですが、省略されているだけですか?


何とか、今回質問させていただいた技術(クラスを使ったコネクション)を
習得したいと考えています。お付き合いお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-05 13:54
引用:

モンジさんの書き込み (2006-09-05 13:14) より:

まず、R・田中一郎さんのレスからですが、
「でえたべえすいろいろ」というのは、接続文字列のことですか?


New キーワードの後に書かれているものですから、型でしょう。

引用:

次にじゃんぬねっとさんのレスですが、
上記クラスインスタンス化の("...")部分が理解できません。
(R・田中一郎さんの一つ目の質問と同じです。)


ただの引数を持つコンストラクタの例です。
もしこれが SqlConnection クラスであれば、接続文字列かもしれませんけど。

引用:

また、DR(OracleDataReader)が無いのですが、省略されているだけですか?


これに関しては、R・田中一郎さんに対して引用をして返信をしています。
(コンパイル エラーの指摘ですから)

[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-09-05 14:04 ]
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-09-05 14:21
引用:

モンジさんの書き込み (2006-09-05 13:14) より:

まず、R・田中一郎さんのレスからですが、
「でえたべえすいろいろ」というのは、接続文字列のことですか?



じゃんぬねっとさんの仰る通りです _(_*_)_

引用:

モンジさんの書き込み (2006-09-05 13:14) より:

また、ReaderGetというのはメソッドですか?



モンジさんの仰る通りです _(_*_)_


引用:

モンジさんの書き込み (2006-09-05 13:14) より:

戻り値にコマンドをExecuteReaderさせると解釈しましたが・・・。)


この部分は、意味がよくわかりませんでした。

Public Function ReaderGet(ByVal SqlText As String) As OracleDataReader
:
End Function

こんな感じになるかと思いますが。
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2006-09-07 09:00
じゃんぬねっとさん、R・田中一郎さんお付き合いいただきまして、恐縮です。
再度質問させていただきます。

引用:

R・田中一郎さん2006-09-05 10:24書き込みより

呼び出し側
Dim DR As OracleDataReader
Using (DBC As New でえたべえすいろいろ)
DR = DBC.ReaderGet("SQL文")
あれこれやる・・・
End Using



(Usingの箇所はじゃんぬねっとさんに補足いただいていますので、無視して)
呼び出し側にコネクションを開いている形跡がないのですが、
コンストラクタでコネクションを開いているのですか?

(じゃんぬねっとさんのおっしゃるConnectionOpenメソッドを
コンストラクタで実行している。)

それなら合点がいくのですが・・・。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-07 09:41
引用:

モンジさんの書き込み (2006-09-07 09:00) より:

呼び出し側にコネクションを開いている形跡がないのですが、コンストラクタでコネクションを開いているのですか?
(じゃんぬねっとさんのおっしゃるConnectionOpenメソッドをコンストラクタで実行している。)


省略しているだけでしょうね。

なるべく Open している時間を少なくするのが基本なので、
コンストラクタに実装というのは違和感があります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-09-07 09:42
引用:

モンジさんの書き込み (2006-09-07 09:00) より:

コンストラクタでコネクションを開いているのですか?


そうです。

引用:

じゃんぬねっとさんの書き込み (2006-09-07 09:41) より:

なるべく Open している時間を少なくするのが基本なので、
コンストラクタに実装というのは違和感があります。


ConnectionOpen() メソッドを実装した方がエラー処理など細かい作業ができて良いかもしれませんね。

引用:

モンジさんの書き込み (2006-09-07 09:00) より:

それなら合点がいくのですが・・・。


合点がいきましたか?w

閉じ方も気をつけて下さい。

つ参照:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=33005&forum=7&start=1


[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-09-07 09:45 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-07 09:57
引用:

R・田中一郎さんの書き込み (2006-09-07 09:42) より:

そうです。


orz (代弁失敗)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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