如何用VFP的dbf进行SQLServer7.0的分布式查询
摘要
本文演示了如何执行一个分布式SQL Server查询来从FoxPro获取数据。dbc和。dbf文件。
更多信息
Microsoft SQL Server 7.0提供了基于OLE DB访问接口执行查询的能力。这是通过使用OpenQuery或OpenRowset Transact-SQL函数或包含连接的服务器名称的四个查询来完成的。
例如:
sp _ addlinkedserver ' my linked server ',' product_name ',' myoledbprovider ',' data_source ',' location ',' provider_string ',' catalog '
SELECT * FROM OPENQUERY(mylinkedserver,' select * from table1 ')
您可以使用Microsoft ole db provider for ODBC(msdas QL)和Visual FoxPro ODBC驱动程序来设置链接服务器,以执行基于FoxPro的分布式查询。dbc和。dbf文件。不支持Jet OLEDB提供程序和FoxPro。
下面的T-SQL示例代码演示了如何通过OpenQuery和OpenRowset函数设置和使用分布式查询FoxPro。它还演示了如何从SQL Server更新远程FoxPro表。您可以在SQL Server 7.0计算机上安装Visual FoxPro ODBC dri。在SQL查询分析器中测试这些代码。您需要将数据源名称和路径更改为适当的FoxPro文件:
/* OPENROWSET和OPENQUERY示例。通过带有VFP的ODBC OLE DB访问接口*/
/*这些OPENROWSET示例依赖于示例文件VFP98\data\Testdata.dbc
如果您的数据位于不同的位置,请修改您的代码*/
-= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
-使用DBC文件
select * from openrowset('MSDASQL ',
' Driver = Microsoft Visual FoxPro Driver;
SourceDB = e:\ VFP 98 \ data \ test data . DBC;
SourceType=DBC ',
'select * from客户所在国家!= "美国"按国家排序))
开始
select * from openrowset('MSDASQL ',
' Driver = Microsoft Visual FoxPro Driver;
SourceDB = e:\ VFP 98 \ data \ test data . DBC;
SourceType=DBC ',
' select * from customer where region = " WA " ')
go
更新openrowset('MSDASQL ',
' Driver = Microsoft Visual FoxPro Driver。
SourceDB = e:\ VFP 98 \ data \ test data . DBC;
SourceType=DBC ',
' select * from customer where region = " WA " ')
set region = " Seattle "
go
-检查以验证更新了哪些行
select * from openrowset(' MSDASQL ',
' Driver = Microsoft Visual FoxPro Driver;
SourceDB = e:\ VFP 98 \ data \ test data . DBC;
SourceType=DBC ',
' select * from customer where region = " Seattle " ')
go
- OPENROWSET DSN示例
/*注意:如果SQL Server配置为使用本地帐户DSN示例,它可能会失败。*/
Select * from openrowset(' msdasql ',
' DSN = Visual FoxPro Database;
SourceDB = e:\ VFP 98 \ data \ test data . DBC;
SourceType=DBC ',
'select * from客户所在国家!= "美国"按国家排序))
开始
/* sp_addlinkedserver示例*/
-带DSN的sp_addlinkedserver示例
/*您需要生成一个DSN并将其指向Testdata数据库。
修改您的代码以反映DBC的位置*/
/*注意:如果SQL Server被配置为使用本地帐户DSN示例,它可能会失败。*/
SP _ addlinkedServer '带DSN VFP测试数据库',
',
' MSDASQL ',
' VFP系统DSN' [/br]]
0条评论