怎样在一个QUERY打开两个装有MSSQL7的服务器中的表。(50分)

  • 主题发起人 主题发起人 呆子12
  • 开始时间 开始时间

呆子12

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在一个QUERY打开两个装有MSSQL7的服务器中的表。
 
呆子,能把“怎样在一个QUERY打开两个装有MSSQL7的服务器中的表”
的语序调整一下么。听不懂耶
 
我估他的意思是打开两个mssql数据库中的表。
高两个database,在query中设置别名不就行了。
 
这是sql server的一段例子:
SELECT a.*
FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=seattle1;UID=sa;PWD=MyPass',
pubs.dbo.authors) AS a
ORDER BY a.au_lname, a.au_fname
也就是说:
OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=seattle1;UID=sa;PWD=MyPass',
pubs.dbo.authors) AS a
以后就可以将另一个sql server上的某个表作为本地表来使用了。
更详细的解释参看sql server book online!
 
异 构 查 询
所谓异构查询,就是同时查询几个不同的数据库。这些数据库的类型可以不同。
例如,可以同时查询Oracle数据库、Sybase数据库和本地的dBASE表。
当程序执行异构查询的时候,BDE通过Local SQL来分析和处理这个查询,而不是用与服务器相关的特定的SQL语法。
建立一个异构查询的一般步骤是这样的:
第一步,把一个TQuery构件放到窗体或数据模块上,让DatabaseName属性空着。
第二步,为要查询的每一个数据库建立一个单独的BDE别名。
第三步,设置SQL属性以指定要执行的SQL语句。在SQL语句中,表的名字前要加别名和冒号,并且用双引号括起来。字段名前要加表名和小圆点。
例如:
SELECT Customer.CustNo, Orders.OrderNo
FROM "Oracle1:CUSTOMER"
JOIN "Sybase1:ORDERS"
ON (Customer.CustNo = Orders.CustNo)
WHERE (Customer.CustNo = 1503)
第四步,设置Params属性提供参数。
第五步,调用Prepare通知BDE或服务器做好准备,然后调用Open或ExecSQL执行查询。
如果显式地使用TDatabase构件连接数据库,并且设置了它的DatabaseName属性定义了应用程序专用的别名,
在SQL语句中可以用专用的别名代替BDE别名。
 
多人接受答案了。
 
后退
顶部