Как импортировать файлы типа PDF MP3 DOC XLS в поле данных MS SQL Server, используя код VBA в Access2007 - PullRequest
1 голос
/ 19 ноября 2008

Кто-нибудь знает, как сохранить и извлечь файлы в MS SQL-Server 2000? Я думаю, что тип данных изображения может быть использован в качестве контейнера.

Я хочу импортировать / экспортировать следующие типы файлов: DOC, XLS, PDF, BMP, TIFF и т. Д.

Из-за проблем с ресурсами мы используем MS-Access2007 в качестве внешнего интерфейса, поэтому я ищу код VBA.

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 26 ноября 2008

Я советую вам (действительно!) Не пытаться (никогда!) Сохранять файлы как данные в базе данных. Вы быстро столкнетесь с критическими космическими проблемами.

Пожалуйста, подумайте о создании папок для хранения файлов. Они будут использоваться для сохранения / архивирования ваших файлов. Пути к папкам могут храниться в одной из ваших таблиц (например, Tbl_Folder). Затем вы можете сохранить имена файлов в таблице (например, Tbl_File, где у вас будет поле 'filename'). Вы сможете открыть его методом Access.followHyperlink и управлять им (копировать / удалять / перемещать) с помощью объекта сценариев файла (FSO).

0 голосов
/ 28 ноября 2008

Вы можете сделать это с помощью потоков. Этот код должен помочь вам с первыми шагами:

Set rs = New ADODB.Recordset
rs.Open "select * from YourTable", Connection, adOpenKeyset, adLockOptimistic

Set mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
mstream.LoadFromFile "c:\myfile.pdf"
rs.Fields("blobfield").Value = mstream.Read
rs.Update

Нет ничего опасного в хранении файлов в базе данных. У нас есть база данных SQL Server объемом около 20 ГБ, которая содержит около 40 000 документов, изображений и т. Д. Никогда не было проблем с ней более 3 лет.

0 голосов
/ 19 ноября 2008

Вы можете сделать это, используя GetChunk и AppendChunk.

Из этой записи вы можете найти эту ссылку полезной!

Одна вещь, которую нужно остерегаться:

При использовании определенных провайдеров, большинство в частности ODBC для SQL Server и других базы данных, вам, возможно, придется взять особое внимание при получении BLOB-данных, такие как размещение столбцов BLOB на конец списка полей и ссылки все поля не BLOB до доступа BLOB столбцы.

Удачи!

...