仓酷云

标题: MYSQL网站制作之使用 SQLServer 链接服务器会见远程 Ac... [打印本页]

作者: 飘灵儿    时间: 2015-1-16 22:46
标题: MYSQL网站制作之使用 SQLServer 链接服务器会见远程 Ac...
索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。access|server|sqlserver|会见|服务器|链接|数据|数据库
Web开辟中,常常要用到Access数据库。可是因为Access是一种文件型数据库,以是没法跨服务器举行会见。经由笔者的探究,发明能够使用SQLServer的链接服务器,把地舆上分离的Access数据库整合起来,使Access数据库具有超过Web服务器群的才能。如许做,还可使Access数据库与SQLServer,乃至Oracle等收集数据库毗连起来,完成异构数据库的互连,从而实行散布式的查询、更新、命令和事件。

1、创立链接服务器,毗连当地Access数据库

创立链接服务器能够用“企业办理器”,也能够实行体系存储历程sp_addlinkedserver来完成。用体系存储历程绝对快速一些,格局为:
sp_addlinkedserver链接服务器名,产物名,Microsoft.Jet.OLEDB.4.0,Access数据库路径及文件名

指定Microsoft.Jet.OLEDB.4.0作为provider_name,指定Access数据库文件的完全路径名作为data_source。.mdb数据库文件必需驻留在当地服务器上,路径必需是服务器上的无效路径。

比方,本例创立一个名为mytest的链接服务器,对E:我的文档文件夹下名为DOS.mdb的Access数据库举行操纵,则在“SQL查询剖析器”中实行:

sp_addlinkedservermytest,Access2000,Microsoft.Jet.OLEDB.4.0,E:我的文档DOS.mdb

2、创立链接服务器登录映照

一样能够用“企业办理器”或存储历程来完成。存储历程的格局为:

sp_addlinkedsrvlogin链接服务器,false,SQLServer登录名,admin,NULL

为会见非保密的Access数据库,试图会见Access数据库的SQLServer登录应当有一个为用户Admin界说的没有暗码的登录映照,下例使得当地用户sa能够会见名为mytest的链接服务器:

sp_addlinkedsrvloginmytest,false,sa,admin,NULL

要会见保密的Access数据库,需利用注册表编纂器设置注册表,以便利用Access的准确的事情组信息文件。利用注册表编纂器向该注册表项中增加Access利用的事情组信息文件的完全路径称号:

HKEY_LOCAL_MACHINEOFTWAREMicrosoftJet4.0EnginesystemDB

设置了注册表项后,请利用sp_addlinkedsrvlogin创立从当地登录到Access登录的登录映照:

sp_addlinkedsrvloginmytest,false,sa,[AccessUser],[AccessPwd]

链接服务器和链接服务器登录映照创建终了,能够在企业办理器里举行检察。

3、链接服务器的测试

能够在“SQL查询剖析器”里对创立的链接服务器举行测试。因为Access数据库没有目次和架构称号,因而,基于Access的链接服务器中的表能够在散布式查询中利用[linked_server]...[table_name]的四部分称号举行援用。下例从名为mytest的链接服务器中检索articles表的一切行:

Select*frommytest...articles

或:Select*fromOpenQuery(mytest,Select*from.articles)

4、用代码会见链接服务器的Access数据库

只要完成用代码会见链接服务器的Access数据库,才使得链接服务器发扬了最年夜的天真性和有用性。可使用三中的测试链接服务器的代码创建存储历程,供Asp代码挪用,也能够间接在Asp代码中挪用链接服务器,以下是我经由过程测试的例子:

<%

Dimconn,sSQL,rs

conn="Provider=sqloledb;server=localhost;uid=sa;pwd=SQLSERVER;"用户sa的暗码为SQLSERVER。能够省略数据库名

onerrorresumenext

sSQL="select*frommytest...articles"
Setrs=Server.CreateObject("ADODB.Recordset")
rs.opensSQL,conn,1,1

rs.movefirst
response.writers(0)&"<br>"

iferr.number0then
response.write"取数据毛病:数据库毗连堕落,或存取数据表毛病!"
else
response.write"OK!"
endif

%>

张庆2002.10.13:58
MySQL部署迅速,因此移植过程不会导致生产中断。而且,较短的学习曲线可以让你的系统管理员迅速掌握它的运行和维护。而且,MySQL的易于维护和管理意味着目前的职员可以处理目前的工作。
作者: 老尸    时间: 2015-1-18 16:50
发几份SQL课件,以飨阅者
作者: 金色的骷髅    时间: 2015-1-22 14:22
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
作者: 兰色精灵    时间: 2015-1-31 07:15
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
作者: 再现理想    时间: 2015-2-6 18:20
无法深入到数据库系统层面去了解和探究
作者: 变相怪杰    时间: 2015-2-18 00:45
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
作者: 精灵巫婆    时间: 2015-3-5 23:55
可以动态传入参数,省却了动态SQL的拼写。
作者: 若天明    时间: 2015-3-12 16:38
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
作者: 透明    时间: 2015-3-20 00:29
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2