您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > ASP中对ADO的使用
ASP中使用ADO访问数据源Postedon2007-11-1211:35天地狂虫阅读(11)评论(0)编辑收藏所属分类:07.WEBActiveX数据对象(ADO)是一种既易于使用又可扩充的技术,用来将数据库访问添加到您的Web页可以使用ADO编写简洁和可升级的脚本以连接到与OLEDB兼容的数据源,如数据库、电子表格、顺序数据文件或电子邮件目录。OLEDB是一个系统级的编程接口,它提供一套标准的COM接口,用来展示数据库管理系统的功能。使用ADO的对象模型,您可以轻松地(使用VBScript或JScript等脚本语言)访问这些接口并将数据库功能添加到您的Web应用程序中。另外,您还可以使用ADO访问与开放式数据库互连(ODBC)兼容的数据库。如果您是一位对数据库互连知识有一定了解的脚本编写者,您将会发现ADO的命令语法很简单,而且很容易使用。如果您是一位经验丰富的开发人员,您将会非常欣赏ADO提供的这种可升级的对各种数据源的高性能访问。关于ADO的详细信息,请访问Microsoft通用数据访问(UDA)Web站点。创建连接字符串创建Web应用程序的第一步是给ADO提供一种定位并识别数据源的方法。这是通过“连接字符串”来完成的,连接字符串是一系列用分号分隔的参数,用来定义诸如数据源提供者和数据源位置等参数。ADO使用连接字符串来识别OLEDB“提供者”并将提供者指向数据源。提供者是一个组件,用来描述数据源并以行集合的形式将信息展示给应用程序。下表列出了几个通用数据源的OLEDB连接字符串:数据源OLEDB连接字符串MicrosoftAccessProvider=Microsoft.Jet.OLEDB.4.0;Source=指向.mdb文件的物理路径MicrosoftSQLServerProvider=SQLOLEDB.1;Source=指向服务器上数据库的路径OracleProvider=MSDAORA.1;Source=指向服务器上数据库的路径MicrosoftIndexingServiceProvider=MSIDXS.1;Source=指向文件的路径为了提供向后兼容,ODBC的OLEDB提供者支持ODBC连接字符串语法。下表列出了通常使用的ODBC连接字符串:数据源驱动程序ODBC连接字符串MicrosoftAccessDriver={MicrosoftAccessDriver(*.mdb)};DBQ=指向.mdb文件的物理路径SQLServerrDriver={SQLServer};SERVER=指向服务器的路径OracleDriver={MicrosoftODBCforOracle};SERVER=指向服务器的路径MicrosoftExcelDriver={MicrosoftExcelDriver(*.xls)};DBQ=指向.xls文件的物理路径;DriverID=278MicrosoftExcel97Driver={MicrosoftExcelDriver(*.xls)};DBQ=指向.xls文件的物理路径;DriverID=790ParadoxDriver={MicrosoftParadoxDriver(*.db)};DBQ=指向.db文件的物理路径;DriverID=26文本Driver={MicrosoftTextDriver(*.txt;*.csv)};DefaultDir=指向.txt文件的物理路径MicrosoftVisualFoxPro®(带有一个数据库容器)Driver={MicrosoftVisualFoxProDriver};SourceType=DBC;SourceDb=指向.dbc文件的物理路径MicrosoftVisualFoxPro(不带数据库容器)Driver={MicrosoftVisualFoxProDriver};SourceType=DBF;SourceDb=指向.dbf文件的物理路径注意(使用UNC路径引用位于远程计算机上的数据源的)连接字符串可能造成潜在的安全问题。要禁止对您的数据源进行未授权访问,可为需要访问数据的计算机创建Windows帐号,然后对数据源应用适当的NTFS权限。详细信息,请参阅使用NTFS保护文件。设计Web数据应用程序时应考虑的高级问题由于性能和可靠性的原因,我们强烈推荐,在配置数据驱动Web应用程序(需要能满足大约10个以上并发用户同时进行高要求的访问)时,使用客户端服务器数据库引擎。虽然ADO适用于与OLEDB兼容的任何数据源,但经过广泛的测试,主要设计为与客户端服务器数据库(如MicrosoftSQLServer或Oracle)一起工作。ASP支持共享文件数据库(MicrosoftAccess或MicrosoftFoxPro)作为有效的数据源。虽然在ASP文档中有些示例使用了“共享文件”数据库,但我们还是建议这些类型的数据库引擎只用于开发目的或有限的开发方案中。共享文件数据库可能不如客户端服务器数据库更适合于高要求和高质量的Web应用程序。如果正在开发ASP数据库应用程序,并且该程序将连接到远程SQLServer数据库,您还应该注意以下几点:选择SQLServer连接方案要访问远程SQLServer数据库,可以选择TCP/IP套接字方法或已命名管道方法。使用已命名管道,必须在建立连接之前由Windows对数据库客户加以验证,以防止运行已命名管道的远程计算机拒绝那些在该计算机上具有适当SQLServer访问证书、但没有Windows用户帐号的用户的访问。作为另一个选择,使用TCP/IP套接字的连接将直接连到数据库服务器,而不通过中间计算机进行连接。如果通过中间计算机,则与使用已命名管道类似。而且由于使用TCP/IP套接字的连接会直接连到数据库服务器,所以用户可以通过SQLServer验证而不是Windows验证来获得访问。ODBC80004005错误如果访问SQLServer的连接方案没有正确设置,则正在查看数据库应用程序的用户可能会收到ODBC80004005错误的消息。要纠正这种情况,可使用本地的已命名管道连接代替网络的已命名管道连接,但SQLServer与IIS需在同一计算机上运行。Windows2000安全规则不会受到影响,因为此管道是本地连接而不是网络连接,它可以由匿名用户帐号来模拟。同样,在SQLServer连接字符串(在Global.asa文件或网页级脚本中)中,将参数SERVER=servername更改为SERVER=(local)。关键字(local)是由SQLServerODBC驱动程序识别的特殊参数。如果该解决方案无法工作,那么请在IIS和SQLServer之间尝试使用非验证协议,如TCP/IP套接字。当SQLServer在本地或远程计算机上运行时,该协议将能够工作。注意为了在连接到远程数据库时提高性能,请使用TCP/IP套接字。SQLServer安全如果使用SQLServer的“集成”或“混合”安全特性,并且SQLServer数据库驻留在远程服务器上,那么您将无法使用集成的Windows验证。特别地,您无法将集成的Windows验证证书发送给远程计算机。这意味着您不得不使用基本验证,该验证需要用户提供用户名和密码信息。有关这些问题的详细信息,请访问位于的Microsoft产品支持服务Web站点。连接到数据源ADO提供了“Connection”对象,用于建立与管理应用程序和OLEDB兼容数据源或ODBC兼容数据库之间的连接。“Connection”对象的属性和方法可以用来打开和关闭数据库连接,并发布对更新信息的查询。要建立数据库连接,首先必须创建“Connection”对象实例。例如,下面的脚本创建“Connection”对象实例,接着打开一个连接:%'创建connection对象Setcnn=Server.CreateObject(ADODB.Connection)'使用OLEDB连接字符串打开连接cnn.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=C:¥MarketData¥ProjectedSales.mdb%注意连接字符串在等号(=)的左右并不包含空格。在这种情况下,“Connection”对象的“Open”方法将引用连接字符串。使用Connection对象执行SQL查询使用“Connection”对象的“Execute”方法可以将命令发布到数据源,如结构化查询语言(SQL)查询。(SQL是与数据库进行通信的工业标准语言,定义了用来检索和更新信息的命令。)“Execute”方法可以接收参数,用来指定命令(或查询)、受影响的数据记录数和所使用命令的类型。下面脚本使用“Execute”方法以SQL“INSERT”命令的形式发布查询,该命令用来将数据插入指定的数据库表中。在这种情况下,脚本块将名字“JoseLugo”插入到名为“Customers”的数据库表中。%'定义OLEDB连接字符串。strConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:¥Data¥Employees.mdb'例示Connection对象并打开数据库连接。Setcnn=Server.CreateObject(ADODB.Connection)cnn.OpenstrConnectionString'定义SQLSELECT语句。strSQL=INSERTINTOCustomers(FirstName,LastName)VALUES('Jose','Lugo')'使用Execute方法将SQL查询发布到数据库。cnn.ExecutestrSQL,,adCmdText+adExecuteNoRecords%注意,在用来执行查询的语句中指定了两个参数:adCmdText和adExecuteNoRecords。可选参数adCmdText指定命令类型,说明提供者必须将此查询语句(这里是SQL查询语句)评估为命令的文本定义。adExecuteNoRecords参数指示ADO在没有结果返回到应用程序时不要创建数据记录集。此参数只用于定义为文本定义(如SQL查询)的命令类型,或已存储的数据库过程。虽然adCmdText和adExecuteNoRecords是可选参数,但在使用“Execute”方法增强数据应用程序性能时应指定这两个参数。要点ADO参数,如adCmdText,需要在脚本中先定义然后再使用。一个方便的定义参数的方法是使用“组件类型库”,它是包含所有ADO参数定义的文件。要实施组件类型库,首先应声明它。将下面的METADATA标记添加到.asp文件或Global.asa文件中以声明ADO类型库:!--METADATANAME=MicrosoftActiveXDataObjects2.5LibraryTYPE=TypeLibUUID={00000205-0000-0010-8000-00AA006D2EA4}--有关实施组件类型库的详细信息,请参阅使用变量和常量主题中的使用常量部分。除了SQL的INSERT命令外,还可以使用SQL的UPDATE和DELETE命令来更改和删除数据库信息。使用SQL的UPDATE命令可以更改数据库表中各个项目的值。下面的脚本使用UPDATE命令将Customers表中所有在LastName字段中包含姓氏Smith的FirstName字段更改为Jeff。%Setcnn=Server.CreateObject(ADODB.Connection)cnn.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=C:¥Data¥Employees.mdbcnn.ExecuteUPDATECustomer
本文标题:ASP中对ADO的使用
链接地址:https://www.777doc.com/doc-3395712 .html