Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Хранение файлов различных типов в полях БД MS SQL Server [D5, D6, MSSQL]


Stranger ©   (2002-03-25 16:01:00) 

Уважаемые Мастера, вопрос в следующем:
"Как хранить файлы различных типов (MS Word? MS Excel? *.JPEG и т. д.) в поле (например типа Image)
таблицы MS SQL Server, как записывать и читать информацию из такого поля с помощью SQL запроса и
соответственно открывать прочитанную информацию в виде файла соответствующем редакторе
для изменения?"
Огромная просьба, если кто-то работал с такими вещами и есть исходники, был бы благодарен за
кусочек кода с примером на мыло ... (понимаю, что прошу слишком много , но вдруг ... ?)


Stranger   (2002-03-26 10:58:00) [1]

Огромное спасибо всем, кто откликнулся на мою просьбу, если все удачно получится (я надеюсь), то буду просить Merlin-а выложить решение в FAQ :)
Отдельное спасибо
Fay © и Delirium ©


Delirium   (2002-03-25 18:00:00) [2]

К сожалению в MSSQL нет возможности использовать BLOB переменные, однако это можно обойти:

declare @C varchar(50)
Set @C="Test string"

select
Convert(text,@C) as C1,
Convert(image,@C) as C2
into #tmp

select * from #tmp


Дмитрий   (2002-03-25 17:42:00) [3]

В принципе можно бинарные данные в SQL запрос вставить, экранируя (каким символом? см.документацию) символы, которые подлежат экранированию (какие? см. документацию (%, ", 0x00 и т.п)).
Но лучше действительно через потоки. Насчет открытия в соотв. редакторе - либо с помощью OleContainer, либо DDE, либо сохраняя поток в файл во временную директорию и вызывая ShellExecute.


Delirium   (2002-03-25 17:14:00) [4]

А чего тут ругать? В MSSQL существует два BLOB типа : Text - для текстовых данных, с возможностью поиска и Image - для любых. TBLOBField корректно (ADO) работает с этими типами и никаких проблем нет. Кроме того в MSSQL, при соотвестсрующей настройке, BLOB размером до 2-х гигобайт можно реплицировать на уровне транзакций.


Fay   (2002-03-25 16:26:00) [5]

Тыщчу лет (именно так) этого не делал.
Первое, что приходит в голову - это TBlobStream.
Только не ругайте! Переживать буду долго и сильно!


Наверх

Титульная страница Поиск, карта сайта Написать письмо