仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 974|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网站制作之使用 SQLServer 链接服务器会见远程 Ac...

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:46:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
索引用来快速地寻找那些具有特定值的记录,所有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:57 | 只看该作者
发几份SQL课件,以飨阅者
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-22 14:22:16 | 只看该作者
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
兰色精灵 该用户已被删除
地板
发表于 2015-1-31 07:15:53 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
再现理想 该用户已被删除
5#
发表于 2015-2-6 18:20:24 | 只看该作者
无法深入到数据库系统层面去了解和探究
变相怪杰 该用户已被删除
6#
发表于 2015-2-18 00:45:04 | 只看该作者
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
精灵巫婆 该用户已被删除
7#
发表于 2015-3-5 23:55:34 | 只看该作者
可以动态传入参数,省却了动态SQL的拼写。
若天明 该用户已被删除
8#
发表于 2015-3-12 16:38:03 | 只看该作者
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
透明 该用户已被删除
9#
发表于 2015-3-20 00:29:24 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 08:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表