powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хелп самбоди с CDO
10 сообщений из 10, страница 1 из 1
Хелп самбоди с CDO
    #32061014
Rousso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В наличии:
ОС - WIN XP,
Office XP,
SQL Server 2000 Tools
Delphi6.
Трабла в следующем:
В делфях помещаю компонент ADOStoredProc. Связываю с базой, указываю параметры - все как надо.
В SQL Enterprise Manager создаю хранимую процедуру, которую выдрал с форума (кто-то писал). Эта процедура отправляет мыло при помощи CDO. Синтаксис в порядке.
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
CREATE  PROCEDURE [ruslanb].[sendmail] 
   @From char( 50 ) ,
   @To char ( 50 ) ,
   @Subject char( 100 )= " " ,
   @Body char( 254 )= " " 
 /*********************************************************************

This stored procedure takes the above parameters and sends an e-mail. 
All of the mail configurations are hard-coded in the stored procedure. 
Comments are added to the stored procedure where necessary.
Reference to the CDOSYS objects are at the following MSDN Web site:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_messaging.asp

***********************************************************************/  
   AS
   Declare @iMsg int
   Declare @hr int
   Declare @source varchar( 255 )
   Declare @description varchar( 500 )
   Declare @output varchar( 1000 )

 --************* Create the CDO.Message Object ************************
 
   EXEC @hr = sp_OACreate 'CDO.Message', @iMsg OUT

 --***************Configuring the Message Object ******************
 
 -- This is to configure a remote SMTP server.
 
 -- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_schema_configuration_sendusing.asp
 
   EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'
 -- This is to configure the Server Name or IP address. 
 
 -- Replace MailServerName by the name or IP of your SMTP Server.
 
   EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', 'mailgw.bezeqint.net' 

 -- Save the configurations to the message object.
 
   EXEC @hr = sp_OAMethod @iMsg, 'Configuration.Fields.Update', null

 -- Set the e-mail parameters.
 
   EXEC @hr = sp_OASetProperty @iMsg, 'To', @To
   EXEC @hr = sp_OASetProperty @iMsg, 'From', @From
   EXEC @hr = sp_OASetProperty @iMsg, 'Subject', @Subject

 -- If you are using HTML e-mail, use %af_src_str_9 instead of %af_src_str_10.
 
   EXEC @hr = sp_OASetProperty @iMsg, 'TextBody', @Body
   EXEC @hr = sp_OAMethod @iMsg, 'Send', NULL

 -- Sample error handling.
 
   IF @hr <> 0  
     select @hr
     BEGIN
       EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
       IF @hr =  0 
         BEGIN
           SELECT @output = '  Source: ' + @source
           PRINT  @output
           SELECT @output = '  Description: ' + @description
           PRINT  @output
         END
       ELSE
         BEGIN
           PRINT '  sp_OAGetErrorInfo failed.'
           RETURN
         END
     END

 -- Do some error handling after each step if you need to.
 
 -- Clean up the objects created.
 
   EXEC @hr = sp_OADestroy @iMsg
GO

Теперь о главном: Когда выполняю эту процедуру из делфи он мне такую мессагу кидает:
EXECUTE permission denied on object 'sp_OACreate', database 'master', owner 'dbo' .

Мож кто встречался с подобной проблемой, пусть не в делфи, а где-нибудь еще. Подскажите плиз.
...
Рейтинг: 0 / 0
Хелп самбоди с CDO
    #32061022
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ты с правами на выполнение процедуры что-то намудрил... :0(
...
Рейтинг: 0 / 0
Хелп самбоди с CDO
    #32061026
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Permissions
Only members of the sysadmin fixed server role can execute sp_OACreate.
...
Рейтинг: 0 / 0
Хелп самбоди с CDO
    #32061027
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри под кем ты запустил приложение на Делфях
и есть ли у этого эккаунта права на исполнение (EXEC) этой процедуры.
100% что нет.
...
Рейтинг: 0 / 0
Хелп самбоди с CDO
    #32061029
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Timur : ну не всё так грустно можно и гостю право EXEC назначить, если _сильно_ надо.
...
Рейтинг: 0 / 0
Хелп самбоди с CDO
    #32061030
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Следовательно, если твой (ruslanb) не является членом фиксированной роли сервера - sysadmin - прав на вызов хр. пр. sp_OACreate у него не будет.
...
Рейтинг: 0 / 0
Хелп самбоди с CDO
    #32061034
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
use master
grant exec on  sp_OACreate to <UserName>
go
...
Рейтинг: 0 / 0
Хелп самбоди с CDO
    #32061385
Фотография Lexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробовал работать с CDO из T-SQL
не смог работать с почтой, сообщений об ошибке вообще не было, просто тишина и все...ни email, ни error
причем один и тот же пример (алгоритм) исполнял из под VB - все работало
если запустишь, сообщи :)
...
Рейтинг: 0 / 0
Хелп самбоди с CDO
    #32061389
Laplas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если это процедура работает из QA из под того же юзера, которого преполагается использовать из Делфей, то проверь в что свойство Prepared у TADOStoredProc поставлено в False.
...
Рейтинг: 0 / 0
Хелп самбоди с CDO
    #32075073
Mik Prokoshin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Lexis и не только....
Между прочим, есть такая проблема - работать CDO в принципе может только с Exchange (или другим direct соединением). Обычный MAPI транспорт не может работать из-под сервиса (каковым и является SQL). Это я видел в MAPI FAQ и сам пробовал - не отправляет из-под сервиса, только ставит в очередь письма. Как только запускаешь транспорт MAPI как аппликуху-все уходит. Так что - используйте SMTP, может дело в этом ...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хелп самбоди с CDO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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