在存储过程中调用外部的动态连接库(VC)
http://www.yesky.com/20020325/1603437.shtml在SQL Server的存储过程中调用COM组件 
http://school.itnow.com.cn/article/20011214/200112142843.shtml
在 SQL Server 的存储过程中调用 Com 组件  --------------------------------------------------------------------------------
 
发布时间:2001年3月21日 00:00 
   
  SQL server 的 T-Sql 语言的功能是 非常的强大,但是有个时候 也确实是有些限制和不方便,一天,豆腐想为什么不象 asp 一样大量的借用组件呢?说干就干,我这就 开始在 Sql online book 中查找,呵呵终于找到了一个Sql的系统存储过程sp_OACreate,下面大家就和豆腐一起去看看这个存储过程的神奇之处吧  首先我们先用VB 作一个最简单的组件 ,因为是介绍性的文章,所以这个组件是非常的的简单,在具体的工作中,可以写个比这个业务复杂的多的组件
Project Name: testSQLCOM
Class Name: TestMath
Public Function AddMe(a As Long, b As Long) As Long
  AddMe = a + b
End Function
编译生成后,我们就可以在 Sql Server 中对这个 Com 组件进行调用了
declare @i int
declare @intRet int
declare @intRetCode int
DECLARE @strErr varchar (255)
DECLARE @strErr1 varchar (255)
/* 首先创建Com 实例 */
exec @ret_code = sp_OACreate "testSQLCOM.TestMath", @i out
IF @intRetCode <> 0
BEGIN
 /* 创建实例 失败 */
 EXEC sp_OAGetErrorInfo @i, @strErr OUT, @strErr1 OUT
 PRINT "创建实例失败,失败的原因是:: " + @strErr + " " + @strErr1
 RETURN
END/* 创建成功,开始调用 */
EXEC @intRetCode = sp_OAMethod @i,′AddMe′,@ret OUT,100,200
IF @intRetCode <> 0
BEGIN
  /* 调用方法出错 */
 EXEC sp_OAGetErrorInfo @i, @strErr OUT, @strErr1 OUT
 PRINT "调用方法失败,失败的原因是:: " + @strErr + " " + @strErr1
 EXEC sp_OADestroy @i
 RETURN
END
PRINT "返回的结果是" + Str(@intRet)
exec sp_OADestroy @i 
---------------------------------------------------------------十年生死两茫茫。不思量,自难忘。千里孤坟,无处话凄凉。纵使相逢应不识。尘满面,鬓如霜。夜来幽梦忽还乡。小轩窗,正梳妆。相顾无言,惟有泪千行。料得年年肠断处。明月夜,短松岗。

解决方案 »

  1.   

    这个不知道对你有没有帮助!使用SQL Mail收发和自动处理邮件 统一教学网
    日期:2001-12-14 8:48:45
    出处:- 
    作者:未知 
     
      
     SQL SERVER提供了通过EXCHANGE或OUTLOOK收发邮件的扩展存储过程,下面将这几个过程简单的介绍一下。  
    一、启动SQL Mail  
    xp_startmail @user,@password  
    @user和@pass 
    word都是可选的  
    也可打开Enterprise Manager中的Support Services,在SQL Mail上单击右键打开右键菜单,然后按Start来启动  
    二、停止SQL Mail  
    xp_stopmail  
    也可用上述方法中的菜单里的Stop来停止  
    三、发送邮件  
    xp_sendmail {[@recipients =] ’recipients [;...n]’}  [,[@message =] ’message’]  [,[@query =] ’query’]  [,[@attachments =] attachments]  [,[@copy_recipients =] ’copy_recipients [;...n]’  [,[@blind_copy_recipients =] ’blind_copy_recipients [;...n]’  [,[@subject =] ’subject’]  [,[@type =] ’type’]  [,[@attach_results =] ’attach_value’]  [,[@no_output =] ’output_value’]  [,[@no_header =] ’header_value’]  [,[@width =] width]  [,[@separator =] ’separator’]  [,[@echo_error =] ’echo_value’]  [,[@set_user =] ’user’]  [,[@dbuse =] ’database’]  
    其中@recipients是必需的  
    参数说明:  
    参数 说明  @recipients 收件人,中间用逗号分开  @message 要发送的信息  @query 确定执行并依附邮件的有效查询,除触发器中的插入表及删除表外,此查询能引用任何对象  @attachments 附件  @copy_recipients 抄送  @blind_copy_recipients 密送  @subject 标题  @attach_results 指定查询结果做为附件发送  @no_header 不发送查询结果的列名  @set_user 查询联接的用户名,默认为Guset  @dbuse 查询所用的数据库,默认为缺省数据库 
    四、阅读邮件收件箱中的邮件  
    xp_readmail [[@msg_id =] ’message_number’] [, [@type =] ’type’ [OUTPUT]]  [,[@peek =] ’peek’]  [,[@suppress_attach =] ’suppress_attach’]  [,[@originator =] ’sender’ OUTPUT]  [,[@subject =] ’subject’ OUTPUT]  [,[@message =] ’message’ OUTPUT]  [,[@recipients =] ’recipients [;...n]’ OUTPUT]  [,[@cc_list =] ’copy_recipients [;...n]’ OUTPUT]  [,[@bcc_list =] ’blind_copy_recipients [;...n]’ OUTPUT]  [,[@date_received =] ’date’ OUTPUT]  [,[@unread =] ’unread_value’ OUTPUT]  [,[@attachments =] ’attachments [;...n]’ OUTPUT])  [,[@skip_bytes =] bytes_to_skip OUTPUT]  [,[@msg_length =] length_in_bytes OUTPUT]  [,[@originator_address =] ’sender_address’ OUTPUT]]  
    参数说明:  
    参数 说明  @originator 发件人  @subject 主题  @message 信息  @recipients 收件人  @skip_tytes 读取邮件信息时跳过的字节数,用于顺序获取邮件信息段。  @msg_length 确定所有信息的长度,通常与@skip_bytes一起处理长信息  
    五、顺序处理下一个邮件  
    xp_findnextmsg [[@msg_id =] ’message_number’ [OUTPUT]]  [,[@type =] type]  [,[@unread_only =] ’unread_value’])  
    六、删除邮件  
    xp_deletemail {’message_number’}  
    如果不指定邮件编号则删除收件箱中的所有邮件  
    七、自动处理邮件  
    sp_processmail [[@subject =] ’subject’]  [,[@filetype =] ’filetype’]  [,[@separator =] ’separator’]  [,[@set_user =] ’user’]  [,[@dbuse =] ’dbname’] 
     
    ---------------------------------------------------------------十年生死两茫茫。不思量,自难忘。千里孤坟,无处话凄凉。纵使相逢应不识。尘满面,鬓如霜。夜来幽梦忽还乡。小轩窗,正梳妆。相顾无言,惟有泪千行。料得年年肠断处。明月夜,短松岗。
      

  2.   

    可有具体的例子讲解触发器与email配合使用的例子。