Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Дайте намек как передать из vba (Outlook) файл в качестве параметра к процедуре SQL / 3 сообщений из 3, страница 1 из 1
27.07.2010, 09:41:07
    #36760919
TAV 1975
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте намек как передать из vba (Outlook) файл в качестве параметра к процедуре SQL
Всем привет.
У меня стоит задачка. Из письма электроной почты извлекать волженные файлы и помещать в БД на SQL сервере.
Теоретически все понятно:
1. Пишу скрипт на vba, который вызыет хранимую процедуру SQL и передаетр ей файл в виде потока (например ADODB.Stream.Read).
2. Пишу хранимую процедуру, которая принимает это файл как параметр типа Image.

Но вот незадачка, никак не могу подобрать тип такого параметра в vba чтобы передать его в качестве параметра в процедуру SQL. Текст у меня примерно такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Sub ПрикрепитьФайл(Вложение As Attachment, Соединение As ADODB.Connection, Ид As Long)
    Dim Каталог As String
    Dim Поток As New ADODB.Stream
    Каталог = Environ("TEMP")
    Вложение.SaveAsFile (Каталог & Вложение.FileName)
    With Поток
           .Open
            .Type = adTypeBinary
            .LoadFromFile Каталог & Вложение.FileName
    End With
   
    Dim Параметры As ADODB.Parameter
    Dim Комманда As ADODB.Command
    Set Комманда = New ADODB.Command
    With Комманда
        .ActiveConnection = Соединение
        .CommandText = "хп_ФайлВДокументДляРегистрации"
        .CommandType = adCmdStoredProc
        .NamedParameters = True
        .Parameters.Append .CreateParameter("@Ид", adInteger, adParamInput, , Ид)
        .Parameters.Append .CreateParameter("@ИмяФайла", adVarChar, adParamInput,  500 , Вложение.FileName)
        .Parameters.Append .CreateParameter("@Файл", ????? , adParamInput, , Поток.Read)
        Результат = .Execute()
    End With
    Set Комманда = Nothing
    Set Параметры = Nothing
    Set Поток = Nothing
End Sub
Какой бы тип я не пытался подставить вместо ????? , ни один не подходит.
Может решал кто такую задачку, намекните в каком направлении копать?

Модератор:
кнопка называется src
...
Рейтинг: 0 / 0
27.07.2010, 14:35:31
    #36761806
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте намек как передать из vba (Outlook) файл в качестве параметра к процедуре SQL
TAV 1975,

а adBinary точно пробовали ? какая ошибка получается?
...
Рейтинг: 0 / 0
28.07.2010, 12:06:39
    #36763439
TAV 1975
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте намек как передать из vba (Outlook) файл в качестве параметра к процедуре SQL
Привет. Ошибка переводиться как "не верный тип параметра".
Проблему решил. Оказывается нужно указать точную длину потока в поле, где указываем длину типа. Убей, не пойму зачем... видимо, само оно пощитать не в силах.
А тип параметра годиться любой со словом Binary, на всякий случай применил LongBinary.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Дайте намек как передать из vba (Outlook) файл в качестве параметра к процедуре SQL / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]