Разработка баз данныхРазработка баз данных

 Программирование  Программы  Ссылки  Обратная связь
     
. . .
. . .
startpage.htm Новости
about.htm О сайте
fileformat.htm I. Выбор технологии
clientserver.htm Преимущества клиент-серверной технологи
prepare.htm Переход от MDB к ADP
upsizing.htm Инструменты переноса данных
setupserver.htm Выбор версии и установка сервера
selectclient.htm Выбор версии MSAccess
formsreports.htm II. Формы, Отчеты MSAccess
queries.htm Запросы / ADO
inputparameters.htm Передача входных параметров
data_drivers.htm Библиотеки доступа к данным
forms.htm Формы MSAccess
requery.htm Обновление данных в форме
updatableform.htm Обновляемость данных в форме
dialogform.htm Остановка кода пока открыта форма
formsaverecord.htm Сохранить текущую запись
formgotorecord.htm Переход по записям формы
sumform.htm Итоги в формах
serverfiltersample.htm Пример серверного фильтра
formerror.htm Причина Ошибки #Error
menubarevent.htm Перехват нажатия на кнопку меню
woconditionalformat.htm Раскраска строк ленточной формы без условного форматирования
currrec.htm Выделение цветом текущей записи
subform.htm Подчиненные Формы
textboxenter.htm Ввод перевода строки
twimagelistbug.htm treview + imagelist + подч. форма
reports.htm Отчеты, общие рекомендации
report_input_parameters.htm Входные параметры
vbaprog.htm III. Программирование VBA
dbpic.htm Картинки в базе данных
binbmp.htm Двоичные данные картинки в поле таблицы базы данных
piclink.htm Хранение ссылок на файлы
picjpg.htm Бинарное содержимое JPG, Gif файла в бинарном поле базы данных
playsound.htm Воспроизведение звуков
tv.htm Функции для тривью
restartaccess.htm Перезапуск Аксесса
publicvariables.htm Передача и хранение параметров и настроек
collectionfunctions.htm Коллекция полезных функций
datepicker.htm Всплывающий календарик
menuhummer.htm Меню и тулбары
padeg.htm Склонение по падежам
comborowsource.htm Источник данных для поля со списком
filedialog.htm Диалог выбора файла / папки
sendmapi.htm Отправка почты (4 способа) + архивация
autoupdateclient.htm Автоматическое обновление клиентской части
licenses.htm  Устранение проблем с регистрацией компонентов
uncommented.htm Без коментариев
filetime.htm Время и дата файла
reportsample.htm Пример настраивомого отчета
adpformfilter.htm Серверный Фильтр by GEO
tempmdb.htm ADP: Временный MDB для временных таблиц
mutex.htm Запрет запуска нескольких копий приложения
translit.htm Транслитерация всего проекта.
updateident.htm Изменение счетчика
webinterface.htm IV WEB
accessinternet.htm Работа с аксесс через интернет
webupdate.htm Обновление приложения аксесс через интернет
msiecom.htm Программное управление веббраузером
sqlserver.htm MS SQL
mssqltransfer2.htm Перенос/копирование баз
mssqlperm.htm Adp проверка прав пользователя перед открытием формы или управление доступностью полей формы
mssqlcrossdatabase.htm  Межбазовые разрешения
tsqlcollection.htm T-sql коллекция
similarity.htm Сортировка по созвучности
esp.htm расширенные хранимые процедуры
mssqloptimizing.htm Оптимизация быстродействия
     Бинарное содержимое JPG, Gif файла в бинарном поле базы данных

 
Хранение бинарного содержимого JPG, Gif, Wmf файла в бинарном поле базы данных.




  • исправлено маштабирование первого рисунка в отчете  
  • исправлены некоторые проблемы с wmf форматом в отчетах     
     
       В связи с тем что данный способ потребовал много программного кода - мною был сделан специальный   ActiveX контрол  
     
    ActiveX контрол подходит для:  
  • отображения картинок в обычных формах (не ленточных и не табличных)  
  • отчетах  
     
    Особенности данного способа:  
  • экономия на сжатых файлах - порядка 15 раз !!! в отличие от других способов хранения изображений в БД  
  • данные хранятся в базе данных, а не на диске  
     
     
    Для добавления контрола к себе на форму:   
     
    Вставка -> Элемент ActiveX -> AlexeyK_DB16.Picture1     
     
    Если в списке ActiveX нет такого контрола:  
  • загрузите и запустите демонстрационный проект  
  • или отдельно OCX файл и зарегистрируйте его из командной строки: Regsvr32.exe AK_DBPIC16.ocx  
     
    Для отображения картинки:   
    указать ActiveX контролу, внедренному на форму, свойство Datasource -  имя поля формы, в котором содержится бинарный образ графического файла   
    (тип поля OLE для MDB или Image для ADP)   
     

     Далее:  Me.Picture12 - АктивX контрол на форме                      
     
    Методы контрола:            
    Загрузка из графического файла в базу данных   
    Me.Picture12.LoadFromFile (ИмяФайлаИзКоторогоБудетЗарруженаКартинка)   
              
    Очистка картинки и данных в записи          
    Call Me.Picture12.ClearPicture         
             
    Сохранение картинки из БД на диск         
    Me.Picture12.SaveToFile (InputBox("введите имя файла для сохранения", , "c:\output"))          
     
    Свойства контрола:    
    Вместить картинку в рамку, сохраняя пропорции начального графического файла     
    Me.Picture12.Streth = True  
            
    Загрузить небходимые файлы:    
     
     Демонстрационная MDB и RAR  - Содержат установочную программу для OCX    
  • Демонстрационный проект MDB (352 Кб)   
  • Демонстрационный проект RAR(76 Кб)  
  • Отдельно ОCX  файл (48 Кб)       
    Внимание! все примеры будут корректно работать только при установленных   
    последних версиях сервис - паков операционной системы и драйверов доступа к данным     
     

     
    Интересные фрагменты из этого примера:  
     
    выгрузка файла любого типа из таблицы на диск  
     
    RS - Рекордсет подключенный к таблице с файлами  
    RS("filebinary") - поле рекордсета в котором хранится содержимое файла  
    RS("filename") - поле рекордсета в котором хранится имя файла  
     
            Dim Filedata() As Byte, filename  
            filename = RS("filename")  
            ReDim Filedata(Len(RS("filebinary")) - 1)  
            Filedata() = RS("filebinary")  
     
            Open filename For Binary Access Write As #1  
                Put #1, , Filedata()  
            Close #1  
     
    перекладывание из рекордсета в массив - обязательно!  
     
    Загрузка файла в таблицу  
     
    Public Sub Loadlib2db(filename As String)  
     'Это загрузка бинарных файлов в DB, в случае с референсами нужно заполнить остальные поля в  таблице MSysLibFiles  
     Dim RS As New ADODB.Recordset  
     Dim m_value  
     
     'загрузка в массив  
     Dim Filedata() As Byte  
     ReDim Filedata(FileLen(filename) - 1)  
     Open filename For Binary Access Read As #1  
        Get #1, , Filedata()  
     Close #1  
     
     'загрузка в Таблицу  
     m_value = Filedata()  
     RS.Open "select * from MSysLibFiles where id = 0", CurrentProject.Connection, adOpenDynamic,  adLockOptimistic  
     RS.AddNew  
     RS("filebinary") = m_value  
     RS.Update  
     RS.Close  
     Set RS = Nothing  
    End Sub  
     
  •  
    . . .
    . . .
    © 2000 - 2009 Алексей Козин эта вебстраница является зеркалом сайта www.msdatabase.ru Рейтинг@Mail.ru
    Hosted by uCoz