Discussion:
D6.BDE.BLOB Invalid BLOB handle (0x272E)
(слишком старое сообщение для ответа)
Khvorov Vasiliy
2003-09-02 13:15:04 UTC
Permalink
Hello, All!

Используются Firebird и D6. В запросе имеется текстовое
поле *message VARCHAR(32000)*. Это поле (только) отображается
нестандартным способом; использую TFieldDataLink. А таблица
выводится в DBGrid.

При перемещении по запросу случайным образом возникает сабж.
Возникает он при обращениях к полю, например

buf := Field.AsString;

Ошибку возвращает вызов DbiOpenBlob в DBTables.

Изменение структуры таблицы дало следующие результаты
(в таблице были строки длиной не более 100 символов):

1. *message BLOB SUBTYPE 0* - сабж не исчезает. Тип поля TMemoField
2. *message VARCHAR(1024)* - сабж не исчезает. Тип поля TMemoField.
3. *message VARCHAR(100)* - сабж исчез. Тип поля TStringField


Каковы причины возниковения сабжа ? Как их можно устранить?

Средства разработки изменить не могу. Длину поля уменьшать
тоже очень нежелательно. Надежда на тебя, All.

With best regards, Khvorov Vasiliy.
Anatoly Podgoretsky
2003-09-03 04:59:05 UTC
Permalink
Hello, Khvorov Vasiliy!
You wrote to All on Tue, 2 Sep 2003 13:15:04 +0000 (UTC):

KV> Ошибку возвращает вызов DbiOpenBlob в DBTables.

KV> 3. *message VARCHAR(100)* - сабж исчез. Тип поля TStringField

KV> Каковы причины возниковения сабжа ? Как их можно устранить?

KV> Средства разработки изменить не могу. Длину поля уменьшать
KV> тоже очень нежелательно. Надежда на тебя, All.

Причину не знаю, но если будешь использовать как TStringField, то можешь
увеличить размер поля до 254

Anatoly Podgoretsky
http://www.podgoretsky.com
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
Sklyarov Sergey
2003-09-04 06:53:37 UTC
Permalink
В принципе эта ошибка может исчезнуть если увеличить в BDE BLOB SIZE и BLOB
TO CACHE в 4 раза!!!

--

С уважением, Скляров С.А.
Post by Khvorov Vasiliy
Hello, All!
Используются Firebird и D6. В запросе имеется текстовое
поле *message VARCHAR(32000)*. Это поле (только) отображается
нестандартным способом; использую TFieldDataLink. А таблица
выводится в DBGrid.
При перемещении по запросу случайным образом возникает сабж.
Возникает он при обращениях к полю, например
buf := Field.AsString;
Ошибку возвращает вызов DbiOpenBlob в DBTables.
Изменение структуры таблицы дало следующие результаты
1. *message BLOB SUBTYPE 0* - сабж не исчезает. Тип поля TMemoField
2. *message VARCHAR(1024)* - сабж не исчезает. Тип поля TMemoField.
3. *message VARCHAR(100)* - сабж исчез. Тип поля TStringField
Каковы причины возниковения сабжа ? Как их можно устранить?
Средства разработки изменить не могу. Длину поля уменьшать
тоже очень нежелательно. Надежда на тебя, All.
With best regards, Khvorov Vasiliy.
Khvorov Vasiliy
2003-09-04 07:39:28 UTC
Permalink
04.09.2003 Sklyarov Sergey писал к Khvorov Vasiliy:


SS> В принципе эта ошибка может исчезнуть если увеличить в BDE BLOB SIZE и
SS> BLOB TO CACHE в 4 раза!!!

Было BLOB SIZE=999 и BLOB TO CACHE=64.

Возникает предположение, что при увеличении обьема выборки сабж
возникнет снова. Как определить предельный обьём выборки, при
котором возникнет сабж?

--
на этом прощаюсь, Khvorov Vasiliy.
... in vino veritas
Sklyarov Sergey
2003-09-04 08:07:19 UTC
Permalink
В догонку!!!
Т.е. получается
BLOB TO CACHE должен быть больше BLOB SIZE в 2 раза!!!

--

С уважением, Скляров С.А.
Как определить не знаю.
BLOB SIZE=128(по умолчанию 32)
BLOB TO CACHE=256(по умолчанию 64).
У меня при таких значениях ошибка исчезла.
Я доставал в выборке 2 Blob поля и увеличение
BLOB SIZE до 64
BLOB TO CACHE до 128 не давало ни какого эфекта.
--
С уважением, Скляров С.А.
Post by Khvorov Vasiliy
SS> В принципе эта ошибка может исчезнуть если увеличить в BDE BLOB
SIZE
и
Post by Khvorov Vasiliy
SS> BLOB TO CACHE в 4 раза!!!
Было BLOB SIZE=999 и BLOB TO CACHE=64.
Возникает предположение, что при увеличении обьема выборки сабж
возникнет снова. Как определить предельный обьём выборки, при
котором возникнет сабж?
--
на этом прощаюсь, Khvorov Vasiliy.
... in vino veritas
Comoderator of ru.delphi.db
2003-09-04 10:49:56 UTC
Permalink
Приветствую, Sklyarov.

Moderatorial [*] Оверквотинг.

Hастоящее сообщение не может быть примером оформления
из-за необходимости в "протоколе нарушения".

О том, как здесь принято квотировать лучше почитать в здешних правилах.

--
С уважением, Leonid Troyanovsky.
Post by Sklyarov Sergey
В догонку!!!
Т.е. получается
BLOB TO CACHE должен быть больше BLOB SIZE в 2 раза!!!
--
С уважением, Скляров С.А.
Как определить не знаю.
BLOB SIZE=128(по умолчанию 32)
BLOB TO CACHE=256(по умолчанию 64).
У меня при таких значениях ошибка исчезла.
Я доставал в выборке 2 Blob поля и увеличение
BLOB SIZE до 64
BLOB TO CACHE до 128 не давало ни какого эфекта.
--
С уважением, Скляров С.А.
Post by Khvorov Vasiliy
SS> В принципе эта ошибка может исчезнуть если увеличить в BDE BLOB
SIZE
и
Post by Khvorov Vasiliy
SS> BLOB TO CACHE в 4 раза!!!
Было BLOB SIZE=999 и BLOB TO CACHE=64.
Возникает предположение, что при увеличении обьема выборки сабж
возникнет снова. Как определить предельный обьём выборки, при
котором возникнет сабж?
--
на этом прощаюсь, Khvorov Vasiliy.
... in vino veritas
Loading...