お世話になります。
データベースの勉強中です。大量のBLOBストリームの作成ができません。
3個なら作成できてDBに記録できるのですが、20個になると出来ません。
TBlobStream.Create(TBlobField(Table1.FieldByName('OK')),bmWrite);
ここで「開いているBLOBが多すぎます」とメッセージが出てしまいます。
BlobStream.Free; <=やっているのですが...
教えて下さい。
DELPHI5.0 PRO使用です。
自己レスです。
「開いているBLOBが多すぎます」のメッセージはある数を超えると
表示されています。(ちなみに80DBに記録できます。)
> TBlobStream
接続方式はBDE でしょうか?
BLOBS TO CACHE の数を増やせば良かったと思います。
えーとねさん、ありがとうございます。
「BLOBS TO CACHE」をヘルプで調べたのですが、見つかりませんでした。
「CacheBlobs」とは違いますよね?
CacheBlobs プロパティは,BLOB 項目がメモリにキャッシュされるかどうかを決めます。と書いてあります。
Tableでは難しいのでしょうか?
> 見つかりませんでした。
BDE Administrator のエリアスの項目です。
コントロールパネルからアクセスできます。
えーとねさん、ありがとうございます。
環境設定タブのNATIVE−>PARADOXのBLOCKSIZEを変えましたが
変化無しでした。
ODBCを使用していないので(意味あっていますか?)
BLOB TO CACHE項目ではないようです。一応変更してみましたが、
変化無しでした。
Paradox ですか。
環境設定 -> System -> INIT のMinbufSize を増やしてみたら、どうでしょう。
えーとねさん、ありがとうございます。
実行してみます。
PARADOXでDBを扱う時、本などには
Table1.Open
失礼しました。慌ててクリックしてしまいました。
PARADOXでDBを扱う時、本などには
Table1.Openが書いてなくTable1.Editから始まっている事が多いのですが
Table1.Openを書いたら20000のBLOB項目を記録できました。
Openメソッドは通常書くものでしょうか?
自己レスです。
えーとねさんのアドバイスを実行しました。
環境設定 -> System -> INIT のMinbufSizeを変更
変化無しです。この部分が正解らしいと思ったのですが...
エラーメッセージが「認識できないオペレーティング内部エラーです。」
と変わりました。
それは残念です。
こちらにParadox の推奨設定が載っています。
http://www.thedbcommunity.com/index.php?option=com_content&task=view&id=207&Itemid=46
Paradox は15年くらい前のテクノロジーなので、時代がかってますね。
Blob に関しては、フィールド1つで64MB。DB 全体で2GBという制限があるそうです。
Delphi 5.0 との事ですが、BDE は最新版を使っていますか?
http://support.borland.com/entry.jspa?externalID=4321
えーとねさん、ありがとうございます。
>Blob に関しては、フィールド1つで64MB。DB 全体で2GBという制限
エラーが表示されたあとDBの容量は2.08GBでした。
制限があるようですね。
>BDE は最新版を使っていますか?
BDE5.1 => 5.2 へアップグレードするも変化なしです。
ParadoxでBlobは使えないのですかね。
追加です。
DB 全体で2GBという制限でメッセージが出るのですが、一度プログラムを終了してから再度プログラムを起動すると記録できるのですが、プログラムを
終了させないで、行う方法はありませんか?
> ParadoxでBlobは使えないのですかね。
Interbase に乗り換えてはどうでしょう。
> 再度プログラムを起動すると記録できる
限界を超えているなら、それ以上の追加は危険では。
えーとねさん、ありがとうございます。
当方Pro版なのでInterbaseなどのEnterPrise版は使えないのです。
なにか他の方法があれば良いのですが...
> InterbaseなどのEnterPrise版は使えないのです。
Pro 版でもInterbase は付属していると思います。
Delphi5 は違うのでしょうか?
もし無いのなら、オープンソースのFirebird を使いましょう。互換性があります。
http://firebird.gr.jp/
えーとねさん、ありがとうございます。
再確認で付属していました。
Interbaseの最大テーブル数が65536と書いてあったのですが、この数字を超える場合新たにDBを作成するのですよね?。
Firebirdを調べてみます。
自己レスです。
長いレスになってしまいましたが、回答して頂いた皆様ありがとうございました、
勉強になりました。DBでJPEG画像は記録せず、他のソフトを使用する方向になりました。
ツイート | ![]() |