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

解決


デルデル  2006-11-08 03:19:06  No: 23795

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

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

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

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


デルデル  2006-11-08 18:17:07  No: 23796

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


えーとね  2006-11-08 18:50:04  No: 23797

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


デルデル  2006-11-08 22:09:12  No: 23798

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


えーとね  2006-11-08 23:31:28  No: 23799

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


デルデル  2006-11-09 00:41:17  No: 23800

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

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

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


えーとね  2006-11-09 02:21:34  No: 23801

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


デルデル  2006-11-09 05:30:30  No: 23802

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

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


デルデル  2006-11-09 05:34:41  No: 23803

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

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


デルデル  2006-11-09 18:17:26  No: 23804

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

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


えーとね  2006-11-09 18:58:11  No: 23805

それは残念です。

こちらに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 19:20:22  No: 23806

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


デルデル  2006-11-09 22:38:27  No: 23807

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

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

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


デルデル  2006-11-09 23:46:27  No: 23808

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


えーとね  2006-11-10 01:22:09  No: 23809

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

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


デルデル  2006-11-10 17:26:06  No: 23810

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

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


えーとね  2006-11-10 18:53:49  No: 23811

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

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

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


デルデル  2006-11-10 19:38:36  No: 23812

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

Firebirdを調べてみます。


デルデル  2006-11-14 01:50:16  No: 23813

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加