Вставить документ в БД

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
fishh
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 21.10.2005 (Пт) 9:50

Вставить документ в БД

Сообщение fishh » 28.07.2009 (Вт) 8:23

Здравствуйте!!!
Существует прога "Делопроизводство". В ней сохраняются записи от кого какие документы пришли в какое время и т.д. Сейчас возникла необходимость прикреплять некоторые доки к записям. В БД было добавлено поле OLE "Вложение". В котором должен хранится документ не известного происхождения (Word, Excel и т.д.). Как реализовать данную функцию на VB?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Вставить документ в БД

Сообщение Денис » 28.07.2009 (Вт) 15:27

Уточните формат базы данных.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

trash
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 113
Зарегистрирован: 28.01.2009 (Ср) 12:09

Re: Вставить документ в БД

Сообщение trash » 29.07.2009 (Ср) 13:55

Раз OLE, значит Access.

fishh
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 21.10.2005 (Пт) 9:50

Re: Вставить документ в БД

Сообщение fishh » 31.07.2009 (Пт) 9:16

Формат БД - Access
А подробнее про OLE можно? я пробовала, но ничего не вышло

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Вставить документ в БД

Сообщение Денис » 31.07.2009 (Пт) 10:42

fishh писал(а):Формат БД - Access
А подробнее про OLE можно? я пробовала, но ничего не вышло

Потом ваши юзеры нажимают на этом поле правой клавишей мышки один раз и в открывшемся меню выбирают пункт "Добавить объект" (левой клавишей мышки, один раз), после чего в открывшемся окошке выбирают точечку "Из файла", нажимают кнопку "обзор" и выбирают свой файл. после чего нажимают кнопочку "ОК" и всё окей.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

dub
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 13.01.2003 (Пн) 9:18
Откуда: Russia

Re: Вставить документ в БД

Сообщение dub » 01.08.2009 (Сб) 11:38

если требуется сохранять документ в БД, поле МEMO, и записывать в него

Код: Выделить всё
Sub add_pic(opt As String)
Dim dbt As Database
Dim rst As DAO.Recordset

Dim Filename As String
Dim FileBin As String

CD1.Filter = "Графические файлы  (*.bmp;*.jpg;*.gif;*.wmf;*.cur;*.ico)|*.bmp;*.jpg;*.gif;*.wmf;*.cur;*.ico"
CD1.FilterIndex = 0
CD1.ShowOpen

Filename = CD1.Filename
If Filename = Empty Then Exit Sub

Open Filename For Binary As #1
FileBin = String$(LOF(1), " ")
Get #1, 1, FileBin
Close #1

Set dbt = OpenDatabase(App.Path & "\db3.mdb")

Select Case opt
    Case "kof"
    Set rst = dbt.OpenRecordset("SELECT * FROM main WHERE id LIKE '" & rskof.Fields("id") & "'")
    Case "zap"
    Set rst = dbt.OpenRecordset("SELECT * FROM zap WHERE id LIKE '" & rszap.Fields("id") & "'")
End Select

With rst
.Edit
.Fields("pic") = FileBin
.Update
End With

Set rst = Nothing
Set dbt = Nothing

End Sub

когда давно было, но работает

Ser-Robotiaga
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 19.01.2007 (Пт) 0:45

Re: Вставить документ в БД

Сообщение Ser-Robotiaga » 05.01.2010 (Вт) 12:32

Приведенный код для DAO. А для DAO можно без извращений, так как эта технология вполне поддерживает OLE. А вот если БД написана в ADO, то тут вопрос сложный, по крайней мере для меня.

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Вставить документ в БД

Сообщение Roman Koff » 05.01.2010 (Вт) 13:49

Сохранять документы на диске а в базе держать ссылки на файлы не катит?
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

Ser-Robotiaga
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 19.01.2007 (Пт) 0:45

Re: Вставить документ в БД

Сообщение Ser-Robotiaga » 05.01.2010 (Вт) 15:04

Не катит. Интересно прикрутить OLE. Самое интересное, что при создании БД в Access, в Access в нем все работает. Но когда пишешь форму на VB, возникают проблемы.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Вставить документ в БД

Сообщение Twister » 05.01.2010 (Вт) 19:11

Код: Выделить всё
Set rst = dbt.OpenRecordset("SELECT * FROM main WHERE id LIKE '" & rskof.Fields("id") & "'")

Не надо советовать людям применять такую вот ересь. Здесь как минимум три косяка. Хотя общая идея кода верна.

Сохранять документы на диске а в базе держать ссылки на файлы не катит?

Тоже решение из серии "на скоряк". При масштабировании базы такие "решения" могут встать боком.

Автор: как именно требуется производить манипуляции с BLOB-полем, через стандартный интерфейс Access или там своя форма?
А я все практикую лечение травами...

Ser-Robotiaga
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 19.01.2007 (Пт) 0:45

Re: Вставить документ в БД

Сообщение Ser-Robotiaga » 05.01.2010 (Вт) 21:07

Я хоть и не автор этой темы, но возьму на себя смелость утверждать, что автору нужно работать через форму на VB. Да и для меня это актуальная тема.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: AhrefsBot и гости: 60

    TopList