powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Дайте намек как передать из vba (Outlook) файл в качестве параметра к процедуре SQL
3 сообщений из 3, страница 1 из 1
Дайте намек как передать из vba (Outlook) файл в качестве параметра к процедуре SQL
    #36760919
TAV 1975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
У меня стоит задачка. Из письма электроной почты извлекать волженные файлы и помещать в БД на 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
Дайте намек как передать из vba (Outlook) файл в качестве параметра к процедуре SQL
    #36761806
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TAV 1975,

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


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