Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

BDE 5: параметр BLOB SIZE, dead BLOBs <> live BLOBs   Найти похожие ветки 

 
Violina ©   (2004-05-07 10:59) [0]

При записи в поле image всё нормально - проверяла файлы до 20 МБ. При чтении, LOB обрезается до 32 KB. Поискала в форуме и интернете нашла вот что.

BLOB SIZE
Determines the fetch buffer size for dead BLOBs. Applications that deal with dead BLOBs using dead table opens or queries or batchmoves can set a maximum limit on the size of BLOBs to fetch. Setting this parameter to 64 means your application can fetch BLOBs of up to 64K. This parameter does not apply to live table opens.

Default Value: 32, Range : >32 and <1000.

Interbase BLOBs are always "live" and are therefore not affected by the BLOB SIZE param.


Как я поняла, MS SQL BLOBs are always "dead". Пробовала с TQuery и TTable - режет сволочь. Хотя в каком то форуме, вычитала что при TTable резать не должно. Таким образом максимальный объем имиджа это ~1МБ.

Вопросы

1) Что значит dead BLOBs <> live BLOBs (в общих словах)?

2) Можно это как то обойти - переход на ADO не предлагать. То есть если LOB как то читать путём live table opens.

3) Где хранится значение BLOB SIZE - в компоненте TDatabase или где то в самом BDE или же где что то еще? Иными словами придется ли клиентам, юзающим сиё приложение, ручками в BDE администраторе BLOB SIZE = 999 выставлять?

Буду очень признательна за помощь.

Если интересен код
procedure TForm1.Button4Click(Sender: TObject);
var
 bField : TBlobField;
begin
 GetBlobQuery.ParamByName("ID").AsInteger := 17;
 GetBlobQuery.Open;

 bField := (GetBlobQuery.FieldByName("data") as TBlobField);
 ShowMessage(Format("size: %d", [bField.BlobSize]));
 bField.SaveToFile(FileField.Text);

 GetBlobQuery.Close;
end;


 
UncleBob   (2004-05-07 12:15) [1]

AFAIK живой/неживой BLOB означает что он лежит в соответственно живом/неживом датасете, т.е. который можно/нельзя редактировать.

А теперь по проблеме вообще - imho блобы > 32k - проблема BDE, а не MS SQL. У меня те же грабли в Acess и Sybase ASA. Лично я решаю эту проблему загрузкой большого BLOB"а частями по $7C00 байт (не помню откуда именно такое число взялось)


 
Erik ©   (2004-05-07 12:28) [2]

Заглини в BDE администратор, он все параметры держит в Registre.


 
Violina ©   (2004-05-07 12:30) [3]


> AFAIK живой/неживой BLOB означает что он лежит в соответственно
> живом/неживом датасете, т.е. который можно/нельзя редактировать.


А как мне можно в моем примере, гаранитрвоанно выставить, чтобы он был "живой". Readonly для TQuery по умолчанию false.

Мне особенно важен 3 й вопрос

3) Где хранится значение BLOB SIZE - в компоненте TDatabase или где то в самом BDE или же где что то еще? Иными словами придется ли клиентам, юзающим сиё приложение, ручками в BDE администраторе BLOB SIZE = 999 выставлять?

Где можно об этом узнать конкретнее. Буду благодарна за ссылку. Вот здесь я тоже эту тему подняла

http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=91500


 
clickmaker ©   (2004-05-07 13:19) [4]


> Violina ©   (07.05.04 12:30) [3]

Для TQuery это настраивается свойством RequestLive, но может зависеть от типа базы или сервера БД.
А BLOB SIZE может и сама прога при инициализации ставить: TSession.GetAliasParams/ModifyAlias
А может и инсталляшка это делать, в Install Shielde можно ставить БДЕ отдельно с настройкой альяса


 
Violina ©   (2004-05-07 13:50) [5]

to clickmaker

Большое спасибо.


> А может и инсталляшка это делать, в Install Shielde можно
> ставить БДЕ отдельно


Я так и делаю, но вот алиас не настраиваю явно. Просто инсталируется BDE без доп. настроек.


> можно ставить БДЕ отдельно с настройкой альяса


А где можно про это почитать?


 
clickmaker ©   (2004-05-07 14:04) [6]


> Violina ©   (07.05.04 13:50) [5]

Help - InstallShield 5.x templates - BDE 5
Настроить можно в свойствах объекта BDE (на вкладке Components проекта)


 
Violina ©   (2004-05-07 14:07) [7]


> InstallShield 5.x templates - BDE 5
> Настроить можно в свойствах объекта BDE (на вкладке Components
> проекта)


Жаль. Мы используем InstallShield Express 4.0. Там ИВУ уже нету:-(



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
3-1083898736
Maxim2030
2004-05-07 06:58
2004.05.30
обновление DataSet а не работает...


1-1084804021
SMART_n
2004-05-17 18:27
2004.05.30
Отслеживание создания файла


3-1084236623
pulp
2004-05-11 04:50
2004.05.30
Ошибка совметсного использования


6-1081247356
Raptoridze
2004-04-06 14:29
2004.05.30
https


3-1084251518
Vovovanych
2004-05-11 08:58
2004.05.30
Обновлении данных в многопользовательских программах





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский