首页 新闻 搜索 专区 学院

怎样调用远程数据库中的存储过程

0
悬赏园豆:10 [已关闭问题]

怎样调用远程数据库中的存储过程

草根人生的主页 草根人生 | 初学一级 | 园豆:180
提问于:2009-12-26 10:11
< >
分享
其他回答(3)
0

用Web service  在远程服务器中

  只要把这个发布就行!

夜神泣 | 园豆:205 (菜鸟二级) | 2009-12-26 10:15
0

第一步建立一个远程连接

使用sql-server进行分布式查询(链接服务器)
可以使用sql-server企业管理器进行建立,注意其中的rpc及rpc out两项,也可以使用sql语句来完成定义,主要涉及到三个存储过程
sp_addlinkedserver,sp_serveroption和sp_addlinkedsrvlogin,以下是三个存储过程的语法:

sp_addlinkedserver
创建一个链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问。在使用 sp_addlinkedserver 创建链接的服务器之后,此服务器就可以执行分布式查询。如果链接服务器定义为 Microsoft? SQL Server?,则可执行远程存储过程。
语法
sp_addlinkedserver [ @server = ] 'server'
[ , [ @srvproduct = ] 'product_name' ]
[ , [ @provider = ] 'provider_name' ]
[ , [ @datasrc = ] 'data_source' ]
[ , [ @location = ] 'location' ]
[ , [ @provstr = ] 'provider_string' ]
[ , [ @catalog = ] 'catalog' ]
例如:

sp_addlinkedserver 'ServerName','','SQLOLEDB','dbconn',null,'driver={sql server};server=192.168.1.181;uid=sa,pwd=;'
此处ServerName为自定义名称,dbconn为定义的odbc数据源


一般使用的参数如下:
@server “LINKED SERVER”
@srvproduct “Product name”
@provider “Provider”
@datasrc “Data source”
二、设置服务器选项
使用 sp_serveroption 过程,所要使用的参数如下:
@server “Linked server”
@optname “RPC”或“RPC OUT”
@optvalue True 或 False
三、添加Login
使用 sp_addlinkedsrvlogin 过程,所要使用的参数如下:
@rmtsrvname “Linked server”
@useself True 或 False
@locallogin 本地LOGIN
@rmtuser 远程用户
@rmtpassword 远程用户口令


全部完整的示例如下:


exec sp_helpserver /*---查看远程服务器的列表-------*/

exec sp_helplinkedsrvlogin /*------查看远程服务器的登录用户---------*/

exec sp_droplinkedsrvlogin 'sestlserver',null /*----删除远程服务器的登录用户-----*/


exec sp_dropserver 'sestlserver','droplogins'/*-----删除远程服务器------*/



EXEC sp_addlinkedserver 'sestlserver','','SQLOLEDB','sestlserver',null,'driver={sql    server};server=192.168.0.2;uid=sa,pwd=;'
exec sp_serveroption N'sestlserver', N'rpc out', N'true'
exec sp_serveroption N'sestlserver', N'rpc', N'true'
exec sp_addlinkedsrvlogin 'sestlserver','False',null,'sa',

也可以这么定义远程连接
exec sp_addlinkedserver 'dbx','','SQLOLEDB','192.168.0.1'

exec sp_addlinkedsrvlogin 'dbx','false',null,'sa',''

执行:
select * from dbx.数据库名.dbo.表名

Alex.Tuan | 园豆:210 (菜鸟二级) | 2009-12-26 23:48
0

写WebService啊 部署以后然后像访问网站一样调用即可!

YangLau | 园豆:313 (菜鸟二级) | 2009-12-28 10:06
0

一、和访问本机数据库的方式一样,只是把连接字符串修改一下“Data Source=你的服务器IP”,有户名和密码等也改一下就可以了

二、写WebService,然后调用WebService中的方法,这里要访问远程数据库也是要修改一下连接字符串“Data Source=你的服务器IP”,有户名和密码等也改一下就可以了

上不了岸的鱼 | 园豆:4611 (老鸟四级) | 2010-01-08 15:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册