プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になってます。
質問が下手で申し訳ございません。

ADOでORACLEに接続し、SELECTした結果をCSVへ登録する処理を作成してますが、ADOのMoveNextでアプリケーションエラーが毎回発生します。
そこで、エラーの調査方法を教えて下さい。
環境 OS:NT4.0 SP6 AP:VB6.0 SP5 DB:ORACLE 8.1.7

下記にソースを記述します。
Dim pCon As New ADODB.Connection
Dim rs As New ADODB.Recordset

pCon.Open "DSN=DSN名;uid=UID名;pwd=PASSWORD"
Set rs.ActiveConnection = pCon
strSQL = "select * from テーブル名"
rs.Open strSQL, pCon, adOpenStatic, adLockReadOnly, adCmdText

intFileNo = FreeFile
Open CSVファイル For Output As #intFileNo
Do Until rs.EOF

CSVファイルへの出力処理ですが、
  エラー調査のため、条件付きIFで処理を
  飛ばしています。

rs.MoveNext

Loop
Close intFileNo

rs.Close
実際には、Selectした内容をMoveNextしているだけなんですが。。。
どうかよろしくお願いします。

A 回答 (2件)

 


エラーの原因はわかりません(肝心のエラーコードも書いてないし)が、取りあえずのツッコミどころをいくつか・・・。

(1) As New 宣言はやめましょう。VB6.0以前では、パフォーマンス上の理由から推奨されません。(VB.NETでは意味合いがまったく違いますが・・・)

(2) ODBCプロバイダは止めましょう。OLEDBプロバイダを使うか、またはADOをやめてoo4oを使うべき。
(3) SELECT文にORDER BY句がありませんが、並び順は考慮しなくてよいのでしょうか?
(4) CSV出力なら別の(よりよい)手段がありそう。

> CSVファイルへの出力処理ですが、
>   エラー調査のため、条件付きIFで処理を
>   飛ばしています。

ここの部分、怪しくないですか?
(実際にはEOFの状態でMoveNextしてるとか・・・)
 

この回答への補足

早速の回答ありがとうございます。
エラーコードですが、ダイアログが表示され"メモリがwritten"になることはできませんでした。”です。
(2)はどうしてか教えて頂けないでしょうか(無知ですいません)
(3)1項目ORDER BY句があります。
あと、デバッグモードで確認しましたので、EOFの状態でMoveNextはしておりません。

以上です。

補足日時:2003/04/09 17:16
    • good
    • 0

 


> (2)はどうしてか教えて頂けないでしょうか

ODBC / oo4o / ADO + OLEDB の比較優劣は識者のコメントに期待するとして(おい)、CSVへの出力はSpool使った方がよくありませんか?
BEGIN / END で括ればoo4oから実行できそうな気がします。(試してないんで、アレですけど・・・)

参考URL:http://homepage1.nifty.com/kojama/works/rdbms/or …
    • good
    • 0
この回答へのお礼

大変有益な情報を提供して頂きありがとうございました。
oo4oでうまく行きましたことをご報告いたします。
又何かありましたら宜しくお願いします。
ありがとうございました。

お礼日時:2003/04/10 09:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!