| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > сохранить изображение в базу |
| Автор: Baha_Ahmed 11.4.2009, 08:23 |
| Есть некое изображение, пробема сохранения ее в базу данных. Пишу игрушку типа тестирования для школьного учереждения, нужно сохранять картинки в базу данных. Помогите!!!! |
| Автор: amt 22.4.2009, 13:02 |
| А может достаточно сохранить в базе путь к картинке? |
| Автор: Baha_Ahmed 14.5.2009, 08:52 | ||
Не так не получается, пишу оболочку пустышку, учителя уже дальше сами ею будут пользоваться, а они как правило меняют часто папки, да и это учителя младших классов!!! Помогите!!! |
| Автор: Akina 14.5.2009, 09:12 |
Решение простое - сделать инсталлятор приложения, в папке установки программы или профиля пользователя сделать подпапку для хранения присоединяемых файлов и копировать туда картинки. Так что пусть они меняют и даже удаляют всё, что заблагорассудится. В папку установки программы или там в %USERPROFILE%\Application Data они точно не полезут. А если полезут - смерть данных будет уже на их совести, причём убиение будет явно сознательным. Кстати, и саму БД неплохо класть туда же - в папку установки, Common Files или в профиль пользователя. Добавлено через 2 минуты и 24 секунды Соответственно предусмотри режим очистки такого каталога - удаление файлов, на которые нет ссылок в БД. Можно этот процесс совместить с обслуживанием базы (CompactDatabase). |
| Автор: Baha_Ahmed 14.5.2009, 12:47 | ||||
Понимаешь, проблема в том что тесты они сами составляют и естественно картинки тоже они загружают. А с твоим предложением я согласен, только вот в идеале нужно вот как я сказал. Добавлено через 1 минуту и 47 секунд
А мне не хочется каждый раз их консультировать как пользоваться прогой, когда все в базе пущай что хочют делают. |
| Автор: Baha_Ahmed 14.5.2009, 13:04 | ||||
Объясни, пожалуйста что ты имел в виду. Я пишу оболочку-базу данных, в которой хранятся вопросы и картинки к этим вопросам, ну типа миллионер только с картинками, там много видов тестов: один из многих, с клавиатуры... ну и так далее, но вот нужно чтобы картинки хранились с вопросами в базе. Добавлено через 3 минуты и 46 секунд
Объясни пожалуйста что ты имел в виду!!! |
| Автор: Akina 14.5.2009, 13:57 |
Написал ты приложение и инсталлер... назвал, скажем... ну Test. Отдаёшь юзеру. Юзер у себя запускает инсталлер, который создаёт папку "C:\Program Files\Test", записывает туда Test.EXE, создаёт скрипт деинсталляции, копирует и регистрирует необходимые компоненты, ключи реестра... и наконец создаёт каталог "C:\Program Files\Common Files\Test\Database" ("C:\Program Files\Test\Database", "C:\Documents and Settings\All Users\Application Data\Test\Database"), в который кладёт собсно MDB-файл. Далее. Юзер притаскивает флешку с составленными тестами (или делает их на этом же компе в "C:\Documents and Settings\Вася пупкин\Мои документы\Тесты"). Сделав тест, стартует программу. Она говорит - тыкни мне пальцем файл с вопросом и ответами к нему. Он тычет (ну или вводит их руками в форме ввода). Затем прога говорит - а теперь тыкни мне в рисунки, которые надо показывать к этому вопросу (или юзер нажимает кнопку добавления рисунка). Вываливается окно выбора файла, юзер тычет в файл картинки (на флешке или в каталоге своих документов). Наконец вопрос создан, юзер жмёт "Сохранить". Программа при этом: 1) записывает в БД текст вопроса, варианты ответов, номер верного варианта; 2) копирует файл с рисунком в каталог с базой данных 3) записывает путь к только что созданной копиирисунка в соотв. поле БД. Всё, вопрос готов. Юзер может вынуть флешку, удалить или изменить файл с рисунком в своих документах - на то, что покажет программа, это не окажет ровным счётом никакого влияния. |
| Автор: Baha_Ahmed 15.5.2009, 11:11 | ||
Да, все правильно. Спасибо!!! Я так и хочу сделать, если не найду запись в mdb изображения. То есть прога создает автономные файлы с изображениями, называет их как хочет, при этом ссылка хранится в строке базы с вопросами. Ты знаешь, вот как удалять эти изображения? при удалении вопроса это одно, и второе- когда база создана на одном компе, ее просто копируешь на флешку и она будет работать и на другом, хотя как ты говоришь можно и эту папку скопировать вместе с базой. Просто я однажды скопировал тут один пример как записывать изображение, но пользоваться не смог им. |
| Автор: Akina 15.5.2009, 11:20 | ||||
Конечно, и сама MDB, и зарегистрированные в ней картинки должны быть в одном каталоге (т.е. картинки, конечно, в подкаталоге, или даже в дереве подкаталогов) - и копировать надо всё сразу. И не забыть, что пути к картинкам БД должны быть относительными. |
| Автор: Baha_Ahmed 15.5.2009, 12:07 | ||
то есть App.Path\ и путь к рабочим папкам с базой и картинками. Спасибо большое!!!! |
| Автор: Akina 15.5.2009, 12:19 | ||
Это если ты будешь делать папку для БД и картинок в каталоге установки программы. Но я бы всё-таки предусмотрел режим выбора базы данных (открыть БД) - это позволит иметь несколько БД (одни тесты, другие тесты, рабочая база, пробная база и т.п.)... |
| Автор: Dexx 15.5.2009, 15:13 | ||
| Картинку или формулу или еще чего в RTF. В access поле типа Memo. И примерно так.
|
| Автор: Baha_Ahmed 16.5.2009, 11:25 | ||
Я не работал с RichTextBox, он что может отобразить картинку? и вообще то вопрос стоит как туды записывать и вытаскивать, а в чем отобразить этого нам VB вдоволь предоставил |