NickLee.Framework.V.1.8.1整体构架支持分布式查询和分布式事务

NickLee.Framework.V.1.8.1整体构架支持分布式查询和分布式事务

各位可以在框架的数据层中xml写入sqlserver支持的分布式语法
for example:
SELECT   *
FROM      OPENDATASOURCE(
         'SQLOLEDB',
         'Data Source=192.168.XX.XX;User ID=sa;Password=sa'
         ).Northwind.dbo.Categories as a
 left join Northwind.dbo.Categories as b on a.categoryID=b.categoryID

或者
SELECT   *
FROM      OPENDATASOURCE(
         'SQLOLEDB',
         'Data Source=192.168.100.XX;User ID=sa;Password=sa'
         ).Northwind.dbo.Categories as [a]

 left join

OPENDATASOURCE(
          'SQLOLEDB',
          'Data Source=192.168.100.XX;User ID=sa;Password=sa'
          ).Northwind.dbo.Categories as [b]

 on a.categoryID=b.categoryID

 left join

--必须用全路径限定
Northwind.dbo.Categories as [c]

 on c.categoryID=b.categoryID

或者使用蛙蛙所说的方法
第二种方法:
先使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO

然后你就可以如下:


select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go


简单的说,就是在数据挖掘,数据采集,OLAP,分布式查询和分布式事务,只要sqlserver的t-sql能做到的,现在在NickLee.Framework.V.1.8.1整体构架的数据层都支持,而且更加灵活,NickLee.Framework.V.1.8.2整体构架将提供分布式查询和分布式事务的具体例子,如果水平够的朋友可以自己摸一下,相信有不一样的体验。

更简单的说法就是,查询分析器中查询通过的都可以写在XML中
 

posted @ 2005-12-13 10:21 Nick.Lee 阅读(1291) 评论(6)  编辑 收藏 网摘 所属分类: Asp.net

  回复  引用  查看    
#1楼 2005-12-13 10:37 | 蛙蛙池塘      
FT,这不是t-sql本身的功能吗?

四、 一条语句执行跨越若干个数据库
我要在一条语句里操作不同的服务器上的不同的数据库里的不同的表,怎么办呢?
第一种方法:


select * from OPENDATASOURCE('SQLOLEDB','Data Source=远程ip;User ID=sa;Password=密码').库名.dbo.表名

第二种方法:
先使用联结服务器:


EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO

然后你就可以如下:


select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go

详细可以查看下面的链接
http://onlytiancai.cnblogs.com/archive/2005/08/05/208208.html
  回复  引用    
#2楼 2005-12-13 10:47 | nicklee [未注册用户]
这就是整体构架的灵活之处。

如同房子是可以变动的,房间是可以变动的,房间里面东西是可以变动的。

最好的支持就是基础的支持和灵活的配置

当然数据库连接字段可以提取出来配置在web.config里面或者其他地方
  回复  引用    
#3楼 2005-12-13 14:14 | netwyh [未注册用户]
我再实现从sql的存储过程中调用oracle的数据库表时,前台程序提示:
该操作未能执行,因为 OLE DB 提供程序 'MSDAORA' 无法启动分布式事务。

在sql的查询分析器中可以执行,我们的前台程序是用pb做的,另外我用.net,c++builder调用存储过程也没有问题。

不知道你有没有这方面的经验?

实在没办法了,刚好看到你的blog,期待回复!
  回复  引用    
#4楼 2005-12-13 14:33 | nicklee [未注册用户]
sorry ,pb的不清楚,oracle的也不清楚,估计该通过oledb连接,你自己可以try以下
  回复  引用  查看    
#5楼 2005-12-15 15:16 | 雨玲珑      
第二种方法有点不贴合实际,其实application运行时一般不会给很高的数据权限。而第二中方式对执行的权限要求比较高,所以一般不采用
  回复  引用    
#6楼 2005-12-15 15:19 | nicklee [未注册用户]
我们会采用第一种方式设计分布式数据处理




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-12-08 16:30 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: