Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Запись в Blob'ы


Автор: denism 17.5.2006, 08:07
Здравствуйте,
я правильно понял, что не смогу поменять в blob поле
в определенном месте определенное кол-во байт без
прочтения всего поля. Т.е. работать с таким полем как 
с открытым файлом по записи у меня не получится? 

Автор: drkot 17.5.2006, 10:51
не получится.  smile  

Автор: denism 17.5.2006, 13:44
а жаль... 

Автор: drkot 17.5.2006, 14:19
эти поля и в память то грузятся по необходимости ибо большие они (могут быть) . Хотя могу и ошибаться в логике работы.   smile  

Автор: denism 17.5.2006, 14:55
В том-то и дело что у меня они были бы очень большими,
десятки или сотни метров, и читать мне их совсем не нужно,
а нужно только писать определенные блоки несколько сотен
байт в определенное место. И все. 
Странно что СУБД-шки этого не позволяют, судя по методам 
и свойствам BlobStreama это должно было сработать... 

Автор: Vit 17.5.2006, 15:43
Кто мешает открыть такое поле как Stream? Работа FileStream и FieldStream практически идентична, но боюсь что даже в этом случае читаться будет всё поле. Это так устоены базы данных, в принципе, реляционные базы данных не предназначены для хранения таких больших массивов. Вариант выхода хранить большие поля по кускам. 

Автор: vv3 17.5.2006, 21:40
Есть экспансионный вариант - нужные данные хранить в виде файлов, а в базе данных держать поле с полным именем файла. Но тогда будет необходим доступ к ресурсу. Можно положить рядом с базой маленькое приложение, которое будет отслеживать какой-нить Event и работать с нужным файлом. В этом случае можно вообще держать это приложение и редактируемые файлы на совершенно другой машине, в приложении обеспечить связь по сокетам и передавать сокету  имя файла и пакет изменений. 

Автор: denism 18.5.2006, 08:14
Дело в том что хотелось совсем уйти от явных файлов, тем более сетевых,
чтобы доступ к данным обрабатывала сама СУБД-шка, группировала бы сама данные
и ужимала их. Я согласен что такой подход не вписывается в реляционную 
модель баз данных, просто если бы СУБД-шки поддерживали такой 
вырожденный случай, то им был бы плюс. 

Автор: Vit 18.5.2006, 15:40
Цитата(denism @  17.5.2006,  23:14 Найти цитируемый пост)
просто если бы СУБД-шки поддерживали такой 
вырожденный случай, то им был бы плюс.  


"Старые" базы для мейнфреймов типа IMS именно так и работают 

Автор: drkot 18.5.2006, 16:51
Цитата(denism @  17.5.2006,  14:55 Найти цитируемый пост)
В том-то и дело что у меня они были бы очень большими,десятки или сотни метров,


А что за данные?
Даже в АСУТП такого не встретиш.
ИМХО тут концепция хранения неверная.

Возможно надо промежуточный блок писать
   клиент - |LAN| -  сервер - база данных
                                           - прочие файлы

Сервер (написаный тобой) обрабатывает запросы и выдает инфу. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)