Нужно записать документ в базу sql

avatar001

Здравствуйте ув. форумчане!не могли бы вы мне помочь с одной задачей.Мне нужно записать pdf документ в базу sql.Я пытаюсь сделать это вот этим кодом:Dim rstDocs As New ADODB.Recordset rstDocs.Open "select n_of_doc, firm_id, doc_type, status, OUR_FIRM, description, date_of_begining, date_of_end, document from tg_documents" & _ " where n_of_doc = " & n_of_doc, cn_f, adOpenForwardOnly, adLockOptimistic, adCmdText If rstDocs.EOF Then With rstDocs .AddNew !n_of_doc = n_of_doc !FIRM_ID = FIRM_ID !OUR_FIRM = OUR_FIRM !Doc_type = Trim(Me!Doc_type) !STATUS = Trim(Me!STATUS) !DESCRIPTION = Trim(Me!Descript) !Date_of_begining = format(Me!begindate, "dd/mm/yy 00:00:00") !Date_of_end = format(Me!enddate, "dd/mm/yy 23:59:59") !Document = Me!Document.Update End Withили вот этим:cn_f.Execute "insert into tg_documents (n_of_doc, doc_type_id, OUR_FIRM, firm_id, description, date_of_begining, date_of_end, document) values (" & _ n_of_doc & ", " & doc_type & ", " & OUR_FIRM & ", " & FIRM_ID & ", '" & Trim(Me!Descript) & "', '" & format(Me!begindate, "mm/dd/yy 00:00:00") & "','" & format(Me!enddate, "mm/dd/yy 23:59:59") & "' , " & Me!Document & ")"но когда я вставив все данные нажимаю "сохранить" он выдает ошибку: Произошли ошибки во время выполнения многошаговой операции OLE DB. по возможности проверьте значения всех состояний операции OLE DB. Работа не выполнена.Мне кажется записывать надо как-то по другому, вот только как не знаю. уже все перепробывал.в самой базе этот столбец document имеет тип varbinary(max).На форму вставляю документ ctrl+v. нужно, чтобы документ вставлялся независимо от расположения, то есть папка в которой он находится сама открывается автоматически, я копирую его ctrl+c и на форму вставляю ctrl+vпожалуйста помогите!!!
19 ответов

avatar001

avatar001,неужели никто не сталкивался? или я что-то невнятно написал?


avatar001

Пишите штатным образом через контрол формы - баунд обжект фрейм.


avatar001

Пишите штатным образом через контрол формы - баунд обжект фрейм.
я итак использую присоединенную рамку объектаи вот здесь!Document = Me!Documentу меня запись должна осуществиться в присоединенную рамку объекта. но как-то не получается. может я что-то не правильно пишу в синтаксисе? уже прописывал так:!Document = Me!Document.valueно все равно не получается. может есть у этого элемента какое-то свойство через которое можно записать в него данные?


avatar001

Пишите штатным образом через контрол формы - баунд обжект фрейм.
Ф1


avatar001

Программист-Любитель,не это ожидал услышать :(


avatar001

Ожидаю открытия вами хелпа.


avatar001

Программист-Любитель,открыл, посмотрел, много свойств...подходящими могут быть value, object. пробовал выдается ошибка.


avatar001

Вы не пробовали читать хелп ?


avatar001

Вы не пробовали читать хелп ?
мне та надо чтобы была не ссылка на документ, а чтобы файл записывался в базу данных sql


avatar001

Прочитайте хелп. Там все четко написано. Еще одни снимок сюда постить не буду. Неумение пользоваться хелпом - страшный грех.


avatar001

Шаг в сторону - расстрел.


avatar001

с этим я буду пробовать разобираться.есть еще один вопрос. когда вставляешь документы и они сохраняются размер базы растет.один файл в среднем весит 500кб, но когда сохраняется в базе занимает 5мб. кто может сказать почему и можно ли это как-то предотвратить? только сохранять в виде ссылки не предлагать, т.к. задание требует сохранения всех вставленных документов в базе.


avatar001

avatar001,мы тут недавно, на днях, с Бенедиктом, как раз рассматривали его двоичный ввод данных в поле OLE, посмотрите топик.http://www.sql.ru/forum/actualthread.aspx?bid=4&tid=751254&pg=2


avatar001

alvk,спасибо


avatar001

Вам надо принять главное решение - хранить ОЛЕ объект или двоичное содержимое файла. Второе - на порядок экономнее. Первое дает кучу бесплатных бонусов при разработке (открытие, модификация). Я плюнул на место и выбрал второе.


avatar001

Программист-Любитель,как я понял, если сделать ввод двоичных данных, то качество документа ухудшается. а потом хранить мне нужно договора с поставщиками, которые обязательно должны открываться с приложения. поэтому кажется придется остановиться на первом, вот только база пухнет день ото дня.


avatar001

как я понял, если сделать ввод двоичных данных, то качество документа ухудшается
Враки. Поищите по форуму описание ОЛЕ от Бенедикта.


avatar001

Враки. Поищите по форуму описание ОЛЕ от Бенедикта.
+1Кстати, было совсем недавно Помогите записать картинку в базу


avatar001

avatar001,можете перейти на sql-server, да и ссылки обе, то есть одну , почитайте внимательно.