山那边是海 发表于 2015-1-16 22:33:22

ASP网站制作之用ASP会见数据库的几种罕见体例

由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;用ASP会见数据库的几种罕见体例

ActiveXDataObjects(ADO)是一项简单利用而且可扩大的将数据库会见增加到Web页的手艺。可使用ADO往编写松散简明的剧本以便毗连到OpenDatabaseConnectivity(ODBC)兼容的数据库和OLEDB兼容的数据源。假如您是一个对数据库毗连有必定懂得的剧本编写职员,那末您将发明ADO命令语句其实不庞大并且简单把握。一样地,假如您是一个履历丰厚的数据库编程职员,您将会准确熟悉ADO的先辈的与言语有关性和查询处置功效。

创立ODBCDSN文件
在创立数据库剧本之前,必需供应一条使ADO定位、标识和与数据库通信的路子。数据库驱动程序利用DataSourceName(DSN)定位和标识特定的ODBC兼容数据库,将信息从Web使用程序传送给数据库。典范情形下,DSN包括数据库设置、用户平安性和定位信息,且能够猎取WindowsNT注册表项中或文本文件的表格。

经由过程ODBC,您能够选择但愿创立的DSN的范例:用户、体系或文件。用户和体系DSN存储在WindowsNT注册表中。体系DSN同意一切的用户登录到特定的服务器上往会见数据库,而用户DSN利用得当的平安身份证实限定数据库到特定用户的毗连。文件DSN用于从文本文件中猎取表格,供应了对多用户的会见,而且经由过程复制DSN文件,能够容易地从一个服务器转移到另外一个服务器。因为以上缘故原由,本主题中的示例将利用文件DSN。

经由过程在Windows的“入手下手”菜单翻开“把持面板”,您能够创立基于DSN的文件。双击“ODBC”图标,然后选择“文件DSN”属性页,单击“增加”,选择数据库驱动程序,然后单击“下一步”。依照前面的唆使设置合用于您的数据库软件的DSN。

设置MicrosoftAccess数据库的文件DSN

在“创立新数据源”对话框中,从列表框选择“MicrosoftAccessDriver”,然后单击“下一步”。
键进您的DSN文件名,然后单击“下一步”。
单击“完成”创立数据源。
在“ODBCMicrosoftAccess97安装程序”对话框中,单击“选择”。选择MicrosoftAccess数据库文件(*.mdb),然后单击“断定”。
注重因为功能和牢靠性的缘故原由,我们尽力保举您利用“客户-服务器数据库引擎”设置由如许一种Web使用程序驱动的数据,这些Web使用程序必需满意10个以上的用户的同时会见。只管ASP可使用任何ODBC兼容的数据库,但它是为利用客户-服务器数据库而计划的,并且经由了严厉的测试,这些数据库包含MicrosoftSQLServer、Oracle等。

ASP撑持共享文件数据库(如MicrosoftAccess或MicrosoftFoxPro)作为无效的数据源。只管在ASP文档中的一些示例利用共享文件数据库,但我们倡议只将此类数据库引擎用于开辟或无限的设置计划。共享文件数据库大概没法很好地合用于可满意高需求、高质量的Web使用程序的客户-服务器数据库。

 

设置SQLServer数据库文件DSN

注重假如数据库驻留在远程服务器上,请与服务器办理员接洽,猎取附加的设置信息;上面的历程利用SQLServer的ODBC默许的设置,它大概不合用于您的硬件设置。

在“创立新数据源”对话框中,从列表框当选择“SQLServer”,然后单击“下一步”。
键进DSN文件的称号,然后单击“下一步”。
单击“完成”创立数据源。
键进运转SQL服务程序的服务器的称号、登录ID和暗码。
在“创立SQLServer的新数据源”对话框中,在“服务器”列表框中键进包括SQLServer数据库的服务器的称号,然后单击“下一步”。
选择考证登录ID的体例。
假如要选择SQL服务器考证,请输出一个登录ID和暗码,然后单击“下一步”。
在“创立SQLServer的新数据源”对话框中,设置默许数据库、存储历程设置的驱动程序和ANSI标识,然后单击“下一步”。(要猎取具体信息,请单击“匡助”。)
在对话框(一样名为“创立SQLServer的新数据源”)中,选择一种字符转换办法,然后单击“下一步”。(具体信息,请单击“匡助”。)
鄙人一个对话框(一样名为“创立SQLServer的新数据源”)中,选择登录设置。
注重典范情形下,您只能利用日记来调试数据库会见成绩。

在“ODBCMicrosoftSQLServer安装程序”对话框中,单击“测试数据源”。假如DSN准确创立,“测试了局”对话框将指出测试乐成完成。
SQLserver毗连和平安信息
假如您正在开辟用于毗连远程SQLServer数据库的ASP数据库使用程序,招考虑以下成绩:

毗连计划-您能够选择TCP/IP套接字和定名管道的办法会见远程的SQLServer数据库。当利用定名管道时,由于在创建毗连之前,数据库用户必需被WindowsNT确认,以是对只要得当的SQLServer会见身份而在该盘算机上没有WindowsNT用户帐号的用户大概会被回绝会见定名管道。作为一种替换计划,利用TCP/IP套接字的毗连可间接毗连到数据库服务器,而不用经由过程利用定名管道的两头盘算机。由于利用TCP/IP套接字毗连可间接毗连到数据库server,以是经由过程SQLServer切实其实认,用户就能够取得会见权,而不用经由过程WindowsNT切实其实认。
注重在毗连到远程数据库时利用TCP/IP套接字可进步功能。

平安性-假如您利用SQLServer的集成或夹杂平安特征,而且SQLServer数据库位于远程服务器上,则不克不及利用WindowsNT哀求/呼应切实其实认。也就是说,不克不及将WindowsNT哀求/呼应身份证转发到远程盘算机上,而只能利用基础身份考证,它依据用户供应用户名和口令信息举行。
有关这一主题的具体信息,请参阅http://www.microsoft.com/sqlsupport/default.htm
上的MicrosoftSQLServer手艺撑持主页。

 

设置Oracle数据库文件DSN

起首要确保Oracle用户软件被准确地安装要创立DSN的盘算机上。具体信息,请与服务器办理员接洽或参阅数据库软件文档。

在“创立新数据源”对话框中,从列表框当选择“MicrosoftODBCforOracle”,然后单击“下一步”。
键进DSN文件的称号,然后单击“下一步”。
单击“完成”创立数据源。
输出用户名、暗码和服务器名,然后单击“断定”。
注重DSN文件用.dsn扩大名,位于ProgramsCommonFilesODBCDataSources目次中。

有关创立DSN文件的具体信息,请会见MicrosoftODBCWeb站点:http://microsoft.com/odbc/。

毗连数据库
会见数据库信息的第一步是和数据库源创建毗连。ADO供应Connection工具,可使用该工具创建和办理使用程序和ODBC数据库之间的毗连。Connection工具具有各类属性和办法,可使用它们翻开和封闭数据库毗连,而且收回查询哀求来更新信息。

要创建数据库毗连,起首应创立Connection工具的实例。比方,上面的剧本创立Connection工具,接着翻开数据库毗连:


注重不管在等号(=)之前仍是以后,DSN字符串都不克不及包括空格。

在这类情形下,Connection工具的Open办法援用基于DSN的文件,个中包括关于数据库的地位和设置信息。也能够不援用DSN,间接显式援用供给程序、数据源、用户ID和暗码。

用Connection工具实行查询
用Connection工具的Execute办法,您能够收回布局化查询言语(SQL)查询数据库源并检索了局。SQL是用于与数据库通信的产业尺度言语,它有很多命令可用来检索和更新信息。

上面的剧本利用Connection工具的Execute办法在SQLINSERT命令的表格中收回查询,该命令将数据拔出特定的数据库表格。鄙人面的示例中,剧本将称号JoseLugo拔出名为Customers的数据库表中。


注重基于DSN路径字符串的文件在等号(=)前后不该包括空格。

除SQLINSERT命令之外,您也能够利用SQLUPDATE和DELETE命令变动和删除数据库信息。

用SQLUPDATE命令,您能够改动数据库表中各项目值。上面的剧本利用UPDATE命令将Customers表中每一个LastName字段包括姓Smith纪录的FirstName字段变动为Jeff。


要想从数据库表中删除特定的纪录,可以使用SQLDELETE命令。上面的剧本从Customers表中删除一切姓Smith的行:


注重在利用SQLDELETE命令时,必需审慎处置。当利用不带WHERE子句的DELETE命令时,它将删除表中的一切行。必定要包括SQLWHERE子句来指定要删除切实其实切行。

利用Recordset工具处置了局
只管Connection工具简化了毗连数据库和查询义务,但Connection工具仍有很多不敷。切实地说,检索和显现数据库信息的Connection工具不克不及用于创立剧本;您必需切实晓得要对数据库作出的变动,然后才干利用查询完成变动。

关于检索数据、反省了局、变动数据库,ADO供应了Recordset工具。正如它的称号所表示的那样,Recordset工具有很多您可使用的特征,依据您的查询限定,检索而且显现一组数据库行,即纪录。Recordset工具坚持查询前往的纪录的地位,同意您一次一项慢慢扫描了局。

依据Recordset工具的指针范例属性设置,您能够转动和更新纪录。数据库指针可让您在一组纪录中定位到特定的项。指针还用于检索和反省纪录,然后在这些纪录的基本上实行操纵。Recordset工具有一些属性,可用于准确地把持指针的举动,进步您反省和更新了局的才能。比方,您可使用CursorType和CursorLocation属性设置指针的范例,将了局前往给客户端使用程序(了局一般保存在数据库服务器上)并显现其他用户对数据库的最初一次变动。

检索纪录
一个乐成的数据库使用程序都利用Connection工具创建链接并利用Recordset工具处置前往的数据。经由过程“和谐”两个工具的特定功效,您能够开辟出几近能够实行任何数据处置义务的数据库使用程序。比方,上面的服务器端剧本利用Recordset工具实行SQLSELECT命令。SELECT命令检索一组基于查询限定的信息。查询也包括SQLWHERE子句,用来减少查询的局限。此例中,WHERE子句将查询限定为一切的Customers数据库表中包括的姓Smith的纪录。


注重,在后面的例子中,用来创建数据库毗连的Connection工具和Recordset工具利用该毗连从数据库中检索了局。当您必要准确地设置和数据库创建链接所接纳的体例时,这个办法长短常有效的。比方,假如您必要在毗连实验失利之前指定守候的工夫,则必要利用Connection工具往设置属性。可是,假如您仅仅想利用ADO默许的毗连属性创建毗连,则应当利用Recordset工具的Open办法往创建链接:


当利用Recordset工具的Open办法创建一个毗连时,必需利用Connection工具往包管链接的平安。

用Command工具改良查询
经由过程ADOCommand工具,能够象用Connection工具和Recordset工具那样实行查询,独一的分歧在于用Command工具您能够在数据库源上筹办、编译您的查询而且重复利用一组分歧的值来收回查询。这类体例的编译查询的长处是您能够最年夜水平地削减向现有查询反复收回修正的哀求所需的工夫。别的,您还能够在实行之前经由过程您的查询的可变部分的选项使SQL查询坚持部分不决义。

Command工具的parameter汇合削减了您的贫苦,使您不用在每次从头收回查询时从头创建查询。比方,假如必要有纪律地更新基于库存清单的Web体系中的供给和代价信息,能够用上面的办法事后界说查询:


请反省下面的例子,您将注重到,剧本用分歧的数值反复构建和收回一个SQL查询,而没有从头界说和重发送查询到数据库源。用Command工具编译查询也可制止SQL查询引发的兼并字符串和表格变量成绩。出格是,经由过程利用Command工具的Parameter汇合能够制止与界说字符串、日期、工夫变量的范例有关的成绩。比方,包括“”的SQL查询值大概招致查询失利:

strSQL="INSERTINTOCustomers(FirstName,LastName)VALUES(Robert,OHara)"
注重,姓OHara中包括一个“”,它与在SQLVALUES关头字顶用来暗示数据的“”抵触。经由过程将查询数值作为Command工具参数绑定,能够制止此类成绩。

分离HTML表格和数据库会见
包括HTML表格的Web页可以使用户远程查询数据库而且检索特定的信息。用ADO您能够创立十分复杂的剧本来搜集用户表格信息、创立自界说的数据库查询和将信息前往给用户。利用ASPRequest工具,您能够检索输出到HTML表格的信息并将这些信息兼并到SQL语句中。比方,上面的剧本模块将HTML表格供应的信息拔出表格中。此剧本用Request工具的Form汇合搜集用户信息。


有关表格和利用ASPRequest工具的具体信息,请参阅利用HTML表格。

办理数据库毗连
计划一个能经得起磨练的Web数据库使用程序(比方为几千个客户服务的联机购物使用程序)的最年夜应战,在于怎样公道地办理数据库毗连。翻开而且坚持数据库毗连,即便在没有信息传输时,也会严峻泯灭数据库服务器的资本而且大概会招致毗连性成绩。计划优秀的Web数据库使用程序将接纳数据库毗连并可以抵偿因为收集梗塞酿成的提早。

使毗连超时
举动的俄然增加大概使数据库服务器变得非常愚笨,大批增添创建数据库毗连的工夫。了局是,太长的毗连延时将下降数据库的功能。

用Connection工具的ConnectionTimeout,您能够限定保持毗连实验并收回毛病动静之前使用程序守候的工夫。比方,上面的剧本设置ConnectionTimeout属性,在作废毗连实验之前守候20秒:

Setcn=Server.CreateObject("ADODB.Connection")
cn.ConnectionTimeout=20
cn.Open"FILEDSN=MyDatabase.dsn"

默许的ConnectionTimeout属性是30秒。

注重在将ConnectionTimeout属性兼并到数据库使用程序之前,必定要确保毗连供应程序和数据源撑持该属性。

共享毗连
常常创建和中止数据库毗连的Web数据库使用程序大概会下降数据库服务器的功能。ASP撑持用ODBC3.5的共享特征无效办理毗连。毗连共享保持翻开的数据库毗连并办理分歧的用户共享该毗连,以保持其功能和削减余暇的毗连数。对每个毗连哀求,毗连池起首断定池中是不是存在余暇的毗连。假如存在,毗连池前往毗连而不是创建到数据库的新毗连。

假如但愿将ODBC驱动程序到场到毗连共享中,则必需设置数据库驱动程序并在WindowsNT注册表中设置驱动程序的CPTimeout属性。当ODBC断开毗连时,毗连被存进池中,而不是被断开。CPTimeout属性决意在毗连池中的毗连保存的工夫长度。假如在池中毗连保存的工夫比CPTimeout设置的工夫长,则毗连将被封闭而且从池中删除。CPTimeout的默许值是60秒。

您能够经由过程创立以下设置的注册表键来有选择地设置CPTimeout的属性,从而启用特定ODBC数据库驱动程序的毗连池:


HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INIdriver-nameCPTimeout=timeout
(REG_SZ,unitsareinseconds)

比方,上面的键将SQLServer驱动程序的毗连池的超时设置定为180秒(3分钟)。

HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INISQLServerCPTimeout=180
注重默许情形下,经由过程将CPTimeout设置为60秒,Web服务器将激活SQLServer的毗连池。

利用跨页毗连
只管您能够经由过程存储ASP的Application工具的毗连反复利用跨页毗连,可是,一直使毗连坚持翻开是不用要的,也没有充实使用毗连池的长处。假如有很多用户必要毗连到统一个ASP数据库使用程序,一个好办法就是,将跨页毗连字符串置于ASP的Application工具中,反复利用数据库毗连。比方,能够在Global.asa文件的Application_OnStart事务过程当中指定毗连字符串,以下面的剧本所示:


Application.lock
Application("ConnectionString")="FILEDSN=MyDatabase.dsn"
Application.unlock

然后,在每个会见数据库的ASP文件中写进:


要想创立毗连工具的实例,请利用以下剧本:

cn.OpenApplication("ConnectionString")
关于翻开的毗连,能够在页尾写进以下剧本,封闭毗连:

cn.Close
在单个用户必要反复利用跨页毗连的情形下,利用Session工具毗连比利用Application工具更好。

封闭毗连
要想更好地利用毗连池,就应尽快地封闭数据库毗连。默许情形下,当剧本实行完今后,毗连将被停止。当不再必要毗连时将其封闭,就能够削减对数据库服务器的请求并可使其他用户可以利用该毗连。

可使用Connection工具的Close办法停止Connection工具和数据库之间的毗连。上面的剧本翻开毗连,然后将其封闭:

转载自:诺金软件电脑收集
问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.

小妖女 发表于 2015-1-19 16:27:19

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

金色的骷髅 发表于 2015-1-24 22:27:10

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

蒙在股里 发表于 2015-2-2 13:45:16

掌握asp的特性而且一定要知道为什么。

再现理想 发表于 2015-2-7 21:56:08

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

透明 发表于 2015-2-23 12:54:18

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

小魔女 发表于 2015-3-7 09:07:37

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

海妖 发表于 2015-3-14 17:02:03

不能只是将它停留在纸上谈兵的程度上。

深爱那片海 发表于 2015-3-21 13:16:41

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
页: [1]
查看完整版本: ASP网站制作之用ASP会见数据库的几种罕见体例