SQL Server扩展存储过程兼职
目标:在SQL SERVER存储过程中调用该扩展存储过程,传入三个变量,分别是表名string,记录ID号int,附加信息string,该扩展存储过程把这三个变量存储到IIS站点(可配置)的一个application变量,变量名是Application(表名+记录ID号)=表名string,记录ID号int,附加信息string(即是三个变量用逗号分隔合成一个字符串)
报酬:专家技术分1000,人民币500
大家回复此贴,提出可行性设计方案的,专家技术分1000.具体信息联系QQ:441711
问题点数:100、回复次数:6Top
1 楼softj(天地客人<最近很迷茫>)回复于 2005-04-23 07:57:00 得分 0
不会,帮你UP,关注中...Top
2 楼schwarzenegger(找不到服务器)回复于 2005-04-23 07:57:33 得分 0
只是进程间通信的问题,
共享内存,socket等都可以实现
使用扩展存储过程 不如 直接访问一个URL 改变application变量, 可靠性更强,容易开发、调试 .
Top
3 楼zjcxc(邹建)回复于 2005-04-23 08:34:03 得分 0
iis服务器上建立一个asp页面,接受三个参数,分别是表名string,记录ID号int,附加信息string
然后该asp页负责把这三个变量存储到IIS站点(可配置)的一个application变量
扩展存储过程只需要负责post信息到asp页面就OK了.
Top
4 楼zjcxc(邹建)回复于 2005-04-23 09:41:54 得分 0
''整个实现过程如下
/*============== 创建一个名为 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
%>
go
/*============== 在数据库中创建如下存储过程,完成Application的保存或者读取 ========*/
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) END
exec @err=sp_oacreate 'MICROSOFT.XMLHTTP',@obj out
if @err<>0 goto lberr
exec @err=sp_oamethod @obj,'open',null,@function,@urlstr,0
if @err<>0 goto lberr
exec @err=sp_oamethod @obj,'send',null,''
if @err<>0 goto lberr
if @function='GET'
begin
exec @err=sp_oagetproperty @obj,'ResponseText',@value output
if @err<>0 goto lberr
end
exec @err=sp_oadestroy @obj
return
lberr:
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
Top
5 楼zjcxc(邹建)回复于 2005-04-23 09:42:38 得分 100
:D
给钱给分Top
6 楼zjcxc(邹建)回复于 2005-04-23 09:55:25 得分 0
注意application_process.asp 是放在iis服务器,你的网站根目录下,如果放在其他目录,则调用存储过程时的url要改为正确的目录.Top




