请问各位高手,SQLServer的存储过程中怎样调用URL地址,传参数?

解决方案 »

  1.   

    可以通过引用 xmlhttp 对象实现
      

  2.   

    参考我写的示例, 下面的示例实现存/取application值''整个实现过程如下/*============== 创建一个名为 application_process.asp ========*/
    ''文件内容如下<%
    Application.Lock
    a=Request("tbname")+"_"+Request("id")
    if Request("value")="" then
    response.write application(a)
    else
    b=Request("tbname")+","+Request("id")+","+Request("value")
    Application(a) = b
    end if
    Application.Unlock
    %>/*============== 在数据库中创建如下存储过程,完成Application的保存或者读取 ========*/
    GO
    create procedure p_SaveApplication
    @url nvarchar(1000),  --url地址
    @tbname sysname,      --表名
    @id int,              --id值
    @value nvarchar(1000) out --值,如果指定为null,则获取application的值
    as
    declare @err int,@src varchar(255),@desc varchar(255)
    declare @obj int,@urlstr nvarchar(4000),@function varchar(4)select @function=CASE WHEN @value IS NULL THEN 'GET' ELSE 'POST' END,
    @urlstr=@url
    +N'?tbname='+rtrim(@tbname)
    +N'&id='+rtrim(@id)
    +CASE WHEN @value IS NULL THEN '' ELSE N'&value='+rtrim(@value) ENDexec @err=sp_oacreate 'MICROSOFT.XMLHTTP',@obj out
    if @err<>0 goto lberrexec @err=sp_oamethod @obj,'open',null,@function,@urlstr,0
    if @err<>0 goto lberrexec @err=sp_oamethod @obj,'send',null,''
    if @err<>0 goto lberrif @function='GET'
    begin
    exec @err=sp_oagetproperty @obj,'ResponseText',@value output
    if @err<>0 goto lberr
    endexec @err=sp_oadestroy @obj
    returnlberr:
    exec sp_oageterrorinfo 0,@src out,@desc out
    select cast(@err as varbinary(4)) as 错误号
    ,@src as 错误源,@desc as 错误描述
    go
    --调用(保存),网址是iis网址,application_process.asp对应第一步中创建的application变量处理asp页
    exec p_SaveApplication 'http://localhost/application_process.asp','pubs',1,50--调用(读取)
    declare @value varchar(100)
    exec p_SaveApplication 'http://localhost/application_process.asp','pubs',1,@value out
    select 结果=@value
    --结果:pubs,1,50
      

  3.   

    我偏向于使用XMLDOM而不用XMLHTTP。呵呵,因为用着方便,如果不取返回值,目的仅是传一次数据给目标URL,只用个LOAD。
    如果要求得到页面返回结果,一般我会在URL页返回XML文档。