Как добавить файл в БД access, а потом его достать?
Привет всем! Возник такой вопрос: Имеется на компьютере БД access, в ней есть 2 таблицы( 1 - с текстовыми данными, 2 - с файлами), так вот 2-ая таблица пустая и мне нужно сделать так что бы программно( с помощью C# ) во 2-ую таблицу можно было перенести файлы( а именно файлы будут word ) нужно именно не ссылку на файл указывать, а копировать сам файл в БД и в случае переноса самой БД на другой ПК эти файлы можно было использовать программно ( C# одна и та же программа).
Считываете файл в байтовый массив, потом insert его в поле типа binary, abinary или bigbinary.
Считываете обычным select и пишете в файл.
Да, вам надо сохранять ещё и имя файла и его атрибуты (если это важно).
Но вообще, если есть возможность, я бы заменил Access на любую другую RDBMS (С C# можно прекрасно обходиться SQLEXPRESS, например).
А если на другом ПК не будет SQLEXPRESS, как тогда? Или достаточно как с access чтобы основной файл был и все? И можно ли в SQLEXPRESS файлы хранить, или так же придется через массив байт все решать?
Майкл Васюков, На другом компе может и Access не быть. Вы же не хотите заставлять пользователя устанавливать офис ради вашей программы? В любом случае, есть полно файловых СУБД (SQLite, к примеру). Её упаковать в дистрибутив попроще будет.
WayMax, SQLEXPRESS лично мне нужен для разработки и тестирования. Потом всё равно переносится всё на нормальный сервер. И, как по мне, он всё равно лучше Access.
SQLite неплох, но медленнее экспресса и у него вроде как сложно всё с многопользовательским режимом.
cicatrix, топикстартеру не нужен многопользовательский доступ (судя по вопросу). ему нужна переносимость софта. он на каждый ком будет ставить "нормальный" MS SQL SERVER? Для "разработки и тестирования" давно уже есть Developer Edition.
Майкл Васюков, имел опыт работы с LiteDB, остался вполне доволен. Она NOSQL, но если просто нужно хранить какие-то пользовательские объекты, и по каким-то причинам XML и JSON для этого не подходят, то можно попробовать её.