アプリ版:「スタンプのみでお礼する」機能のリリースについて

実行環境は、WindowsXP,VB6(SP6),Oracle10gで、oradc.ocxを使ってoo4接続しています。
SELECT実行時は、ORA_DYNASET.Fieldsを参照して.VALUEから検索結果値を取得しています。
今まで、LONG型フィールドは何もせずに値の取得が可能でしたが、
CLOB型に変更したことにより、ここでエラーが発生するようになりました。
CLOBのフィールドにto_char関数をかけると、.VALUE参照時のエラーは無くなりましたが、データが4000バイトで切れてしまいます。
現在当方での唯一の回避策は、CLOB型フィールド名を"A"とすると、
to_char(substr(A,1,4000)),
to_char(substr(A,4001,4000)),
to_char(substr(A,8001,4000)) ・・・・・
といった形でのSELECT文をきる事になります。

そもそもは、.VALUEプロパティ参照時のエラーを無くしたいのですが、無くす方法、又は、それにみあう代替策をご存知の方は教えてください。

※なお、LONG型の場合も、10gになってからはデータが4000バイトで切れるとの報告も受けております。最初はTO_CHAR関数のせいだと思っていましたが、VB側のオブジェクトの壁なのでしょうか・・・

A 回答 (1件)

OraField オブジェクトの .GetChunk() を使用するか、OraCLOB オブジェクトを使用してみてはどうでしょうか

この回答への補足

質問者です。大変遅くなりましたが、ご回答のお礼を申し上げます。有難うございました。

substrで切り取る方法を採用していたのですが、問題がありました(substrの結果、4001バイト目以降付近でデータが壊れるなど。切り取るデータに日本語文字列等が混在していたらなおまずい)。
最終結果を申し上げますと、
クライアントインストールフォルダ配下に入っている\oo4o\VB\SAMPLES\LOBコーディングを参考にして(明示的にCLOB型宣言されたバインド変数に受け取る方法)問題解決いたしました。
上記フォルダの存在を今回はじめて知りましたので、ご存知無いかたは参考まで

補足日時:2007/09/18 11:58
    • good
    • 0

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