只想知道 发表于 2015-1-16 23:10:17

ASP教程之关于数据源毗连供应者和数据源毗连

使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。数据|数据源我是初学ASP的,深切一点后,让我狐疑不已的就是数据库的毗连,我常常看到关于统一个MicrosoftAccess数据库利用两种体例,或是三种,乃至四种体例的毗连,最使我不克不及了解的是这两种:

<%
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=databasename;"
%>



<%
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"DBQ=databasename;Driver=MicrosoftAccessDriver(*.MDB);"
%>


为何是如许的呢?带着如许的成绩,我入手下手体系地来看数据源毗连的成绩。让我有所顿悟的是xmxoxo曾给我们的一个ADO布局图,另有即是我利用了OLEDB数据毗连文件(.udl)文件来创立数据源毗连。
ADO的布局图:


上面我就谈谈我对数据源毗连的总的意见。

起首要一定的是这个ADO布局图,ADO的形式是必需经由过程OLEDB接口来会见一切的数据源,也就是说,ADO希冀一切的数据源都供应面向OLEDB接口的驱动。

可尽人皆知,以后我们利用的一切的数据库办理体系--DBMS实践上都能够经由过程ODBC举行互访,这是由于ODBC供应了各种数据源的驱动。但是ADO会见数据源的一致界面倒是个OLEDB接口,如许一来,只管有愈来愈多半据库厂商入手下手也供应OLEDB接口,好比SQLServer、Oracle和MicrosoftAccess(MicrosoftJet数据库引擎)等等,但仍有一些数据源没法以这类体例供应,仍旧必要借助ODBC驱意向OLEDB供应。如许的话,OLEDB便界说了一个嵌进利用ODBC驱动的接口,就象是ODBC驱动也象其他数据库驱动的供应者一样插在了OLEDB型号的插座上。给ODBC这个接口的名字(即OLEDB供应者)即是MicrosoftOLEDBProviderforODBCdrivers,是ADO默许的供应者。关头字Provider的值为MSDASQL,能够省略不写,因此我们在创建数据源毗连时,没看到provider的话,那申明,一定是ODBC供应的驱动。

怎样?狐疑我好久的两个名词OLEDB和ODBC我总算是看分明了。
实践上复杂地说,这两个东东不克不及同等起来,由于不是一个范围。ODBC是乐善好施的恩主,是为各类数据源供应驱动的供应者,而OLEDB基本就是个专制者,它要一切的数据源都向它屈从,供应切合它尺度的驱动。

接上去我们用理论来证实这一点,我们的ODBC切实其实是受控于OLEDB的。

看书上写的一般是创建数据库一般有“DSN办法及非DSN办法”,这类说法只能是针对ODBC驱动而言。对OLEDB来讲只要“UDL体例”及“非UDL体例”,由于转头我们即可以瞥见“DSN办法及非DSN办法”,只不外是OLEDB下的“非UDL体例”。

我们先来看看ADO创建数据源毗连的工具Connection的用法。

从ADO参考上人人能够看到Connection工具有良多属性,我们只议论它的两个属性,一个是Provider,另外一个即是connectionString,这两个干系到我们数据源的终极毗连。

上面这段是关于Provider属性,拷贝于ADO参考。
利用Provider属性可设置或前往毗连供应者的称号。也能够经由过程ConnectionString属性的内容或Open办法的ConnectionString参数设置该属性。可是,挪用Open办法时在多处指定供应者大概会发生没法意料的成果。
假如没有指定供应者,该属性将默许为MSDASQL(MicrosoftOLEDBProviderforODBC)。

一样人人也能够在参考中找到这么一点。利用ConnectionString属性,是经由过程具体毗连字符串来指定命据源的。而我们的ADO撑持的ConnectionString属性只要四个参数,个中有两个仍是针对远程数据服务,也就是说对我们来说,
它撑持的只要两个,是哪两个呢?

是Provider=指定用来毗连的供应者称号。糟,这个方才不是已有过吗?没错,和哪一个Provider属性做一样的事,那岂不是只要一个!没错,独一的一个是FileName。而FileName=指定包括事后设置毗连信息的特定供应者的文件称号,实在一般就是后缀为.udl的文件。好象这个FileName对年夜多半人来说,也没有效过,惨!那我们平常用的算甚么呢?
别急,另有一句话!“任何其他参数将间接传送到供应者而不经由ADO处置”。那就是说我们平常经常使用的毗连参数实践上对ADO来说,就是被它如许给处置失落了。

接上去下手做做,我们以创立一个毗连MicrosoftAccess数据库mydb.mdb的毗连为例

利用Microsoft.Jet.OLEDB.4.0供应者
对我来讲,我把上面这类毗连当作是“UDL体例”
先要创立一个udlfile.udl文件,是使用文件办理器的一个历程“数据毗连属性”来创立的。能够这么做,先建一个空的.txt文件,然后更名为.udl就能够启动该历程天生所需的OLEDB数据毗连.udl文档了。
在这里,你能够指定OLEDB供应者为Microsoft.Jet.OLEDB.4.0,
再指定命据源是C:InetpubwwwrootaspadodbMYDB.MDB。
如许我们会失掉一个具有以下内容的udlfile.udl文件


Provider=Microsoft.Jet.OLEDB.4.0;Datasource=C:InetpubwwwrootaspadodbMYDB.MDB;


以后在.asp文件中使用该udl文件来创建数据源的毗连

<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Open"FileName=c:udludlfile.udl"
%>


甚么是“非UDL体例”呢?
就是指不创建UDL文件,而是间接在程序中指定,即:

<%
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=C:InetpubwwwrootaspadodbMYDB.MDB;"
%>


人人看出来了,我们平常这类指定的用法实在用的就是.udl文件中天生的毗连字符串我们晓得Access数据库除用下面这类驱动,还可使用ODBC供应的驱动,
如许的话,我们仍用“UDL体例”和“非UDL体例”两种体例来操纵一下。别的,因为触及ODBC驱动,以是会存在DSN及非DSN的选择,我们选择“体系DSN体例”,假定名字叫mydsn好了。

UDL体例
用和下面一样的办法创建一个文件udlodbc.udl,选择数据供应者为MicrosoftOLEDBProviderforODBCdrivers,假如你事前已建好了体系DSN的话,就能够间接在数据源当选中体系DSN的名字mydsn了,如许做仿佛会有些成绩。最好仍是选择利用“天生毗连字符串”,点击“编译”,便弹出数据源选择窗口,我们选用呆板数据源标签,从内里能够选择我们已创建了的体系DSN名字mydsn,然后断定。实在,你也能够从头创立一个新的体系DSN,这时候你会看到,创立新的DSN的界面,就是ODBC的界面。(至于怎样创立体系DSN我就不细说了)
如许我们的udlodbc.udl就创建了,用记事本翻开看看,内容大抵以下:


Provider=MSDASQL.1;
Extendedproperties="DSN=mydsn;
DBQ=C:Inetpubwwwrootaspadodbmydb.mdb;"


接上去和下面是一样的,在.asp程序中利用该.udl文件

<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Open"FileName=c:udludlodbc.udl"
%>



那甚么是这类情形下“非UDL体例”呢?固然也是把毗连字符串写在程序中了

<%
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"Provider=MSDASQL.1;
Extendedproperties=""DSN=mydsn;
DBQ=C:Inetpubwwwrootaspadodbmydb.mdb;"""
%>


我们再依据ADO的默许情形,省略失落能够不写的部分,便成了以下的模样:

<%
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"DSN=mydsn;"
%>


这就是我们常说的体系DSN办法。

人人能够推导出文件DSN办法,和非D</p>结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。

灵魂腐蚀 发表于 2015-1-20 07:47:19

从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了

简单生活 发表于 2015-1-29 05:12:28

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

乐观 发表于 2015-1-30 13:16:04

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

小女巫 发表于 2015-2-6 12:08:47

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

老尸 发表于 2015-2-16 03:16:27

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

再见西城 发表于 2015-3-4 23:18:05

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

小魔女 发表于 2015-3-11 21:22:24

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。

透明 发表于 2015-3-19 14:04:33

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

分手快乐 发表于 2015-3-28 07:30:52

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
页: [1]
查看完整版本: ASP教程之关于数据源毗连供应者和数据源毗连