Хранение файлов в БД...

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Tatyanka
Немного Иная
Немного Иная
Аватара пользователя
 
Сообщения: 876
Зарегистрирован: 02.12.2004 (Чт) 13:55
Откуда: Киев

Хранение файлов в БД...

Сообщение Tatyanka » 29.06.2005 (Ср) 15:36

Подскажите, пожалуйста, возможно ли хранение файлов в БД Access? Если можно, то как это реализовать программно на VB.Net?
Мы - Иные. Мы служим разным силам. Но в сумраке нет разницы между отсутствием тьмы и отсутствием света. Наша борьба способна уничтожить мир. Мы заключаем Великий Договор о перемирии...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.06.2005 (Ср) 15:46

Подключить ADO, а дальше задача сводится к VB6 :)
Сделать поле MEMO, и GetChunk/AppendChunk.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 29.06.2005 (Ср) 16:24

не забывай, что БД не может быть больше 2Г (Access)

Поэтому рассмотри вариант хранения в БД только ссылок на файлы и их описаний
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 29.06.2005 (Ср) 16:33

Можно и без ADO:
Код: Выделить всё
        Dim fs As New FileStream("...doc", FileMode.Open)
        Dim binaryFile As New IO.BinaryReader(fs)
        Dim db As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=...mdb;")
        db.Open()
        Dim insertCommand As New OleDbCommand("insert into tablename (f1, f2) values (@p1, @p2)", db)
        With insertCommand
            .Parameters.Add("@p1", OleDbType.Binary).Value = binaryFile.ReadBytes(fs.Length)
            .Parameters.Add("@p2", OleDbType.VarChar, 255).Value = "...doc"
            .ExecuteNonQuery()
        End With

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 29.06.2005 (Ср) 16:56

Не то это все :cry:
У меня просто есть прога, и в ней есть необходимость сохранять именно файлы целиком в БД Access...т.е. пользователь выбирает файл (через OpenFileDialog) а затем этот файл помещается в базу, и конечно со временем его придется извлекать из базы для сохранения на диске...помогите плз...очень надо

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 29.06.2005 (Ср) 17:02

а в чём причина пихания файла именно в базу
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 29.06.2005 (Ср) 17:02

Ramzes писал(а):Не то это все :cry:
У меня просто есть прога, и в ней есть необходимость сохранять именно файлы целиком в БД Access...т.е. пользователь выбирает файл (через OpenFileDialog) а затем этот файл помещается в базу, и конечно со временем его придется извлекать из базы для сохранения на диске...помогите плз...очень надо

Дык, чем предыдущий пост не устраивает?

Tatyanka
Немного Иная
Немного Иная
Аватара пользователя
 
Сообщения: 876
Зарегистрирован: 02.12.2004 (Чт) 13:55
Откуда: Киев

Сообщение Tatyanka » 29.06.2005 (Ср) 18:10

Sebas Хм... Меня вообще-то устраивает и в виде ссылки, даже очень устраивает. Рамзес, зачем тебе файл в базе? :?:
Мы - Иные. Мы служим разным силам. Но в сумраке нет разницы между отсутствием тьмы и отсутствием света. Наша борьба способна уничтожить мир. Мы заключаем Великий Договор о перемирии...

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 29.06.2005 (Ср) 20:13

вопрос кстати интерессный, не раз об этом думал, но ни разу так и не делал.

1. Может реально есть в аксесе примочка для хранения файлов?
2. Как в аксесс запихнуть массив byte? Там же вроде ограничение на длянну строки 255 символов.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 29.06.2005 (Ср) 20:59

Dmitriy Solomnikov писал(а):вопрос кстати интерессный, не раз об этом думал, но ни разу так и не делал.

1. Может реально есть в аксесе примочка для хранения файлов?
2. Как в аксесс запихнуть массив byte? Там же вроде ограничение на длянну строки 255 символов.


И не надо, у меня есть один старый проект котрый так и работает... Ужаснах.

Поля MEMO и IMAGE
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 29.06.2005 (Ср) 22:59

Пара вопросов:

1. Для того чтобы записать файл в базу что надо сделать - считать содержимое файла или считать последовательность нулей и единиц на жестком диске?
2. Если да(0 и 1), то как это сделать.

3. Что я полуаю при использовании вот этого кода:
Код: Выделить всё
        Dim fileName As String = "arc.rar"
        FileOpen(1, fileName, OpenMode.Binary)
        Dim res As New String("", 1500)
        FileGet(1, res, 1500)
        Console.WriteLine(res)
        FileClose(1)


Я открыл раровский файл, и на экране появилась целая куча тубриков, а PC-speaker чуть с ума не сошел пока это все печаталось.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 30.06.2005 (Чт) 7:28

Sebas писал(а):2. Как в аксесс запихнуть массив byte? Там же вроде ограничение на длянну строки 255 символов.


И не надо, у меня есть один старый проект котрый так и работает... Ужаснах.[/quote]

Да все прекрасно засовывается - любого разумного размера. Еще лет 10 назад у меня была программа которая засовывала в базу файлы пришедшие из филиалов (при этом еще архивируя нужные). А юзера по необходимости потом могли выбрать нужный и восстановить.

Единственно что запомнилось из того - размер блока AppendChunk не надо делать слишком большим (я остановился на 32Kb), иначе будут тормоза. Впрочем, база тогда была Access95/97 - на более поздних не проверял.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 30.06.2005 (Чт) 9:39

Andrey Fedorov

НЕ приписывайте мне чужих фраз!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Tatyanka
Немного Иная
Немного Иная
Аватара пользователя
 
Сообщения: 876
Зарегистрирован: 02.12.2004 (Чт) 13:55
Откуда: Киев

Сообщение Tatyanka » 30.06.2005 (Чт) 11:10

Andrey Fedorov писал(а):Да все прекрасно засовывается - любого разумного размера.

Что имеется в виду под "разумным" размером? И какой может быть общий объем присоединенных файлов?
Мы - Иные. Мы служим разным силам. Но в сумраке нет разницы между отсутствием тьмы и отсутствием света. Наша борьба способна уничтожить мир. Мы заключаем Великий Договор о перемирии...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 30.06.2005 (Чт) 11:38

Tatyanka писал(а):
Andrey Fedorov писал(а):Да все прекрасно засовывается - любого разумного размера.

Что имеется в виду под "разумным" размером? И какой может быть общий объем присоединенных файлов?


База<2Г
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

    TopList  
cron