大量のBLOBストリームの作成ができません

解決


デルデル  2006-11-07 18:19:06  No: 23795  IP: 192.*.*.*

お世話になります。
データベースの勉強中です。大量のBLOBストリームの作成ができません。
3個なら作成できてDBに記録できるのですが、20個になると出来ません。

TBlobStream.Create(TBlobField(Table1.FieldByName('OK')),bmWrite);
ここで「開いているBLOBが多すぎます」とメッセージが出てしまいます。 

BlobStream.Free;  <=やっているのですが...

教えて下さい。
DELPHI5.0 PRO使用です。

編集 削除
デルデル  2006-11-08 09:17:07  No: 23796  IP: 192.*.*.*

自己レスです。
「開いているBLOBが多すぎます」のメッセージはある数を超えると
表示されています。(ちなみに80DBに記録できます。)

編集 削除
えーとね  2006-11-08 09:50:04  No: 23797  IP: 192.*.*.*

> TBlobStream
接続方式はBDE でしょうか?
BLOBS TO CACHE の数を増やせば良かったと思います。

編集 削除
デルデル  2006-11-08 13:09:12  No: 23798  IP: 192.*.*.*

えーとねさん、ありがとうございます。
「BLOBS TO CACHE」をヘルプで調べたのですが、見つかりませんでした。
「CacheBlobs」とは違いますよね? 
CacheBlobs プロパティは,BLOB 項目がメモリにキャッシュされるかどうかを決めます。と書いてあります。
Tableでは難しいのでしょうか?

編集 削除
えーとね  2006-11-08 14:31:28  No: 23799  IP: 192.*.*.*

> 見つかりませんでした。
BDE Administrator のエリアスの項目です。
コントロールパネルからアクセスできます。

編集 削除
デルデル  2006-11-08 15:41:17  No: 23800  IP: 192.*.*.*

えーとねさん、ありがとうございます。

環境設定タブのNATIVE−>PARADOXのBLOCKSIZEを変えましたが
変化無しでした。

ODBCを使用していないので(意味あっていますか?)
BLOB TO CACHE項目ではないようです。一応変更してみましたが、
変化無しでした。

編集 削除
えーとね  2006-11-08 17:21:34  No: 23801  IP: 192.*.*.*

Paradox ですか。
環境設定 -> System -> INIT のMinbufSize を増やしてみたら、どうでしょう。

編集 削除
デルデル  2006-11-08 20:30:30  No: 23802  IP: 192.*.*.*

えーとねさん、ありがとうございます。
実行してみます。

PARADOXでDBを扱う時、本などには
Table1.Open

編集 削除
デルデル  2006-11-08 20:34:41  No: 23803  IP: 192.*.*.*

失礼しました。慌ててクリックしてしまいました。

PARADOXでDBを扱う時、本などには
Table1.Openが書いてなくTable1.Editから始まっている事が多いのですが
Table1.Openを書いたら20000のBLOB項目を記録できました。
Openメソッドは通常書くものでしょうか?

編集 削除
デルデル  2006-11-09 09:17:26  No: 23804  IP: 192.*.*.*

自己レスです。
えーとねさんのアドバイスを実行しました。
環境設定 -> System -> INIT のMinbufSizeを変更
変化無しです。この部分が正解らしいと思ったのですが...

エラーメッセージが「認識できないオペレーティング内部エラーです。」
と変わりました。

編集 削除
えーとね  2006-11-09 09:58:11  No: 23805  IP: 192.*.*.*

それは残念です。

こちらにParadox の推奨設定が載っています。
http://www.thedbcommunity.com/index.php?option=com_content&task=view&id=207&Itemid=46
Paradox は15年くらい前のテクノロジーなので、時代がかってますね。

Blob に関しては、フィールド1つで64MB。DB 全体で2GBという制限があるそうです。

編集 削除
えーとね  2006-11-09 10:20:22  No: 23806  IP: 192.*.*.*

Delphi 5.0 との事ですが、BDE は最新版を使っていますか?
http://support.borland.com/entry.jspa?externalID=4321

編集 削除
デルデル  2006-11-09 13:38:27  No: 23807  IP: 192.*.*.*

えーとねさん、ありがとうございます。
>Blob に関しては、フィールド1つで64MB。DB 全体で2GBという制限
エラーが表示されたあとDBの容量は2.08GBでした。
制限があるようですね。

>BDE は最新版を使っていますか?
BDE5.1 => 5.2 へアップグレードするも変化なしです。

ParadoxでBlobは使えないのですかね。

編集 削除
デルデル  2006-11-09 14:46:27  No: 23808  IP: 192.*.*.*

追加です。
DB 全体で2GBという制限でメッセージが出るのですが、一度プログラムを終了してから再度プログラムを起動すると記録できるのですが、プログラムを
終了させないで、行う方法はありませんか?

編集 削除
えーとね  2006-11-09 16:22:09  No: 23809  IP: 192.*.*.*

> ParadoxでBlobは使えないのですかね。
Interbase に乗り換えてはどうでしょう。

> 再度プログラムを起動すると記録できる
限界を超えているなら、それ以上の追加は危険では。

編集 削除
デルデル  2006-11-10 08:26:06  No: 23810  IP: 192.*.*.*

えーとねさん、ありがとうございます。
当方Pro版なのでInterbaseなどのEnterPrise版は使えないのです。

なにか他の方法があれば良いのですが...

編集 削除
えーとね  2006-11-10 09:53:49  No: 23811  IP: 192.*.*.*

> InterbaseなどのEnterPrise版は使えないのです。

Pro 版でもInterbase は付属していると思います。
Delphi5 は違うのでしょうか?

もし無いのなら、オープンソースのFirebird を使いましょう。互換性があります。
http://firebird.gr.jp/

編集 削除
デルデル  2006-11-10 10:38:36  No: 23812  IP: 192.*.*.*

えーとねさん、ありがとうございます。
再確認で付属していました。
Interbaseの最大テーブル数が65536と書いてあったのですが、この数字を超える場合新たにDBを作成するのですよね?。

Firebirdを調べてみます。

編集 削除
デルデル  2006-11-13 16:50:16  No: 23813  IP: 192.*.*.*

自己レスです。
長いレスになってしまいましたが、回答して頂いた皆様ありがとうございました、
勉強になりました。DBでJPEG画像は記録せず、他のソフトを使用する方向になりました。

編集 削除