Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329

Через ADO вызвать xp_smtp_sendmail (SQL)

04.12.2011, 15:03. Показов 2278. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу передать параметры.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
....
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = cn
cmd.CommandText = "xp_smtp_sendmail"
cmd.CommandType = adCmdStoredProc
....
Set prm = New ADODB.Parameter
ss = "vasya@mail.ru"
Set prm = cmd.CreateParameter("@from", adChar, adParamInput, Len(ss), ss)
cmd.Parameters.Append prm
....
cmd.Execute
Ругается. Говорит "анкноун стринг параметр..."
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2011, 15:03
Ответы с готовыми решениями:

Как через ADO вызвать Create Table?
Народ помогите пожалуйста. Как через ADO вызвать Create table для ACCESS. Необходимо создавать таблицы в ACCESS с помощью инструментов...

SQL запросы через ADO в ExcelVBA
Народ есть следующий код выполняю insert на SQL серваке инфа не добавляется :( не понимаю почему ??? тотже запрос на SQL query...

Подключение через ADO к MS SQL SERVER 2000
Доброго времени суток! Имеем C++ Builder 6 MS SQL SERVER 2000 SP4 WIN XP Нужна помощи в следующем: Есть TADOConnection у...

11
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
04.12.2011, 16:41
у тебя точно CHAR стоит тип в параметре процедуры, может все-таки VARCHAR
и вообще проверь внимательно параметры своей расширенной процедуры и оттесть ее в QA
0
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
04.12.2011, 17:15  [ТС]
CHAR''ы я все перепробовал. Думал уж об этом.
В QA работает, ну так там тип вообще не указываю, какой он реально - неизвестно.
Парметры посмотреть негде, это - экстендед ХП из файла.
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
04.12.2011, 17:26
может там есть еще какие параметры, мне кажется одного адреса e-mail недостаточно для отправки письма ИМХО
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
04.12.2011, 17:28
и еще, попробуйте залогиниться в QA под тем же пользователем, что и ваша программа и выполните еще раз эту процедуру
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
04.12.2011, 17:58
однако, вы все-таки должны указывать adVarChar в параметрах. Вот поставьте себе обертку и попробуйте с помощью нее:
SQL
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
USE master
GO
 
IF (NOT object_id(''dbo.sp_smtp_sendmail'') IS NULL)
    DROP proc dbo.sp_smtp_sendmail
GO
 
CREATE proc dbo.sp_smtp_sendmail
    @FROM NVARCHAR(4000) = NULL, 
    @FROM_NAME NVARCHAR(4000) = NULL,
    @TO NVARCHAR(4000) = NULL,
    @replyto NVARCHAR(4000) = NULL,
    @CC NVARCHAR(4000) = NULL,
    @BCC NVARCHAR(4000) = NULL,
    @priority NVARCHAR(10) = N''NORMAL'',
    @subject NVARCHAR(4000) = NULL,
    @message NVARCHAR(4000) = NULL,
    @messagefile NVARCHAR(4000) = NULL,
    @TYPE NVARCHAR(100) = N''text/plain'',
    @attachment NVARCHAR(4000) = NULL,
    @attachments NVARCHAR(4000) = NULL, 
    @server NVARCHAR(4000) = N''smarthost'', 
    @codepage INT = 0,
    @timeout INT = 10000
AS
 
DECLARE @rc INT
 
EXEC @rc = master.dbo.xp_smtp_sendmail
    @FROM = @FROM,
    @FROM_NAME = @FROM_NAME,
    @TO = @TO,
    @replyto = @replyto,
    @CC = @CC,
    @BCC = @BCC,
    @priority = @priority,
    @subject = @subject,
    @message = @message,
    @messagefile = @messagefile,
    @TYPE = @TYPE,
    @attachment = @attachment,
    @attachments= @attachments,
    @server = @server,
    @codepage = @codepage,
    @timeout = @timeout
 
IF (@@error <> 0 OR @rc <> 0)
    raiserror(N''Sending message USING xp_smtp_sendmail failed'', 16, 1)
 
RETURN @rc
0
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
04.12.2011, 18:00  [ТС]
Пользователь один и тот же.
Параметров я передаю больше, конечно, просто не стал загромождать.

И, кстати, эта фиговина работает при обращении к ХП путем передачи команды "exec xp_smtp_sendmail @from=''vasya@mail.ru'' @to=...бла-бла-бла", только мне хочется (вернее, нужно) через параметры.
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
04.12.2011, 18:04
попробуй указать: [bold]master.dbo.xp_smtp_sendmail[/bold]
и объяви правильно все параметры
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
04.12.2011, 18:08
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Set prm = cmd.CreateParameter("@FROM", adVarChar, adParamInput, 4000, ss)
...
Set prm = cmd.CreateParameter("@FROM_NAME", adVarChar, adParamInput, 4000, ss)
...
Set prm = cmd.CreateParameter("@TO", adVarChar, adParamInput, 4000, ss)
...
Set prm = cmd.CreateParameter("@replyto", adVarChar, adParamInput, 4000, ss)
...
...
Set prm = cmd.CreateParameter("@codepage", adInteger, adParamInput, , 0)
...
Set prm = cmd.CreateParameter("@timeout", adInteger, adParamInput, , 10000&)
...
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
04.12.2011, 18:09
и самый первый параметр:
Visual Basic
1
cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue)
0
1 / 1 / 1
Регистрация: 18.06.2008
Сообщений: 329
04.12.2011, 18:37  [ТС]
Да, подвижка какая-то есть.
Но, я так понял, теперь надо передавать ВСЕ параметры, и в том порядке, в котором они описаны в новой ХП?
А название параметра программе стало вообще по-барабану, главное, каким по счету он передается...

Буду тыркать.
Спасибо.
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
10.12.2011, 21:44
Где взять о чемтут говорилось? xp_smtp_sendmail тобишь... с гуайдом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2011, 21:44
Помогаю со студенческими работами здесь

Подключение через ADO к MS SQL Server 2005
Настройки произ вожу в инспекторе объектов. Подключаюсь к базе через мастер отлично, когда же хочу организовать подключение по нажатию...

Удаление записей Delphi - Ado - Access через SQL Between
Доброго времени суток. БД - для учета школьных олимпиад. Нужно написать запрос для удаления олимпиад по каждому уч. году. Пример ...

Подключение базы данных sql к delphi через ADO
Здравствуйте. При подключении базы данных созданной в sql managment studio через ADODB возникает проблема с подключением.Ошибка канала...

ComboBox и поля синхронного просмотра. Взаимодействие через ADO с БД MS SQL Server
Здравствуйте! Пишу первую программу на C# с использованием технологии ADO. Загрузил данные в таблицу DataGridView. Эта таблица отображает...

Как вызвать через кнопку в делфи SQL Explorer
как вызвать через кнопку в делфи SQL Explorer, хочу сделать кнопку &quot;для продвинутого пользователя&quot; что бы при нажатии на кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru