asp基础实用教程(DOC格式)-第6部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
Request。QueryString(”food”)。Count
如果想显示多个值的类型,List。ASP应包含下面的脚本;
上述脚本将显示:
apples
olives
bread
2、Form集合
当使用HTTP GET方法去向Web服务器传递长而复杂的表格值时,将可能丢失信息。大多数的Web服务器倾向于严格控制URL查询字符串的长度,以便用GET方法传送的冗长的表格值被截断。如果您需要从表格发送大量信息到Web服务器,就必须使用HTTP POST方法。此法用于在HTTP请求正文中发送表格数据,而且发送的字符的个数可以无限多。也可以使用ASPRequest对象的Form集合检索用POST方法发送的值。
Form集合与QueryString集合存储数值的方式相同。例如,如果用户用一长串名称填充表格,您就可以用下面的脚本检索这些名称:
验证表格输入
一个好的表格处理脚本在处理数据前,应先验证输入表格的信息是否有效。验证脚本可以检验用户输入到表格的信息类型是否正确。例如,如果您的Web站点包含一个表格,该表格允许用户计算财务信息,那么在处理结果之前,需要验证用户确实输入了数值信息而不是文本。
一个非常方便的验证表格输入的方法是创建一个向自身传递信息的表格。在这种情况下,。ASP文件包含可获取信息的表格。例如,下面的脚本通过向自身传递信息来验证用户是否在 ”age”表格字段中输入了数值:
Hello; your age is
Please enter a numerical age。
Name:
Age:
在这个例子中,脚本也在包含表格的同一Verify。ASP文件中。表格通过在ACTION属性中指定Verify。ASP自身传送信息。
您也可以创建客户端脚本来检验用户是否输入了有效的信息。验证用户在Web浏览器上的输入除了更迅速地向用户提示表格项错误外,还可以减少Web服务器的网络流量。下面的脚本运行在用户的Web浏览器上,在将信息提交到Web服务器之前,验证用户信息。
Name:
Age:
十、访问数据库
ActiveX Data Objects(ADO)是一项容易使用并且可扩展的将数据库访问添加到Web页的技术。可以使用 ADO去编写紧凑简明的脚本以便连接到Open Database Connectivity(ODBC)兼容的数据库和OLE DB兼容的数据源。
如果您是一个对数据库连接有一定了解的脚本编写人员,那么您将发现ADO命令语句并不复杂而且容易掌握。同样地,如果您是一个经验丰富的数据库编程人员,您将会正确认识ADO的先进的与语言无关性和查询处理功能。
创建ODBC DSN文件
在创建数据库脚本之前,必须提供一条使ADO定位、标识和与数据库通讯的途径。数据库驱动程序使用Data Source Name(DSN)定位和标识特定的ODBC兼容数据库,将信息从Web应用程序传递给数据库。典型情况下,DSN包含数据库配置、用户安全性和定位信息,且可以获取 Windows NT注册表项中或文本文件的表格。
通过ODBC,您可以选择希望创建的DSN的类型:用户、系统 或 文件。用户和系统DSN存储在Windows NT注册表中。系统DSN允许所有的用户登录到特定的服务器上去访问数据库,而用户DSN使用适当的安全身份证明限制数据库到特定用户的连接。文件DSN用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制DSN文件,可以轻易地从一个服务器转移到另一个服务器。
由于以上原因,本主题中的示例将使用文件DSN。
通过在Windows的”开始”菜单打开”控制面板”,您可以创建基于DSN的文件。双击〃ODBC”图标,然后选择”文件 DSN”属性页,单击”添加”,选择数据库驱动程序,然后单击”下一步”。按照后面的指示配置适用于您的数据库软件的DSN。
配置Microsoft Access数据库的文件 DSN
在〃创建新数据源〃对话框中,从列表框选择〃Microsoft Access Driver”,然后单击”下一步”。
键入您的 DSN 文件名,然后单击”下一步”。
单击〃完成〃创建数据源。
在〃ODBCMicrosoft Access 97 安装程序”对话框中,单击”选择”。选择Microsoft Access数据库文件(*。mdb),然后单击”确定”。
注意由于性能和可靠性的原因,我们极力推荐您使用〃客户…服务器数据库引擎”配置由这样一种Web应用程序驱动的数据,这些Web应用程序必须满足10个以上的用户的同时访问。尽管ASP可以使用任何ODBC兼容的数据库,但它是为使用客户…服务器数据库而设计的,而且经过了严格的测试,这些数据库包括Microsoft SQL Server、Oracle 等。
ASP支持共享文件数据库(如Microsoft Access或Microsoft FoxPro)作为有效的数据源。尽管在ASP文档中的一些示例使用共享文件数据库,但我们建议只将此类数据库引擎用于开发或有限的配置方案。共享文件数据库可能无法很好地适用于可满足高需求、高质量的Web应用程序的客户…服务器数据库。
配置SQL Server数据库文件DSN
注意如果数据库驻留在远程服务器上,请与服务器管理员联系,获取附加的配置信息;下面的过程使用SQL Server的ODBC默认的设置,它可能不适用于您的硬件配置。
在〃创建新数据源〃对话框中,从列表框中选择〃SQL Server”,然后单击”下一步”。
键入DSN文件的名称,然后单击”下一步”。
单击〃完成〃创建数据源。
键入运行SQL服务程序的服务器的名称、登录ID和密码。
在〃创建SQL Server的新数据源”对话框中,在”服务器”列表框中键入包含SQL Server数据库的服务器的名称,然后单击”下一步”。
选择验证登录ID的方式。
如果要选择SQL服务器验证,请输入一个登录ID和密码,然后单击”下一步”。
在〃创建 SQL Server的新数据源”对话框中,设置默认数据库、存储过程设置的驱动程序和ANSI标识,然后单击”下一步”。(要获取详细信息,请单击”帮助”。)
在对话框(同样名为〃创建SQL Server的新数据源〃)中,选择一种字符转换方法,然后单击〃下一步〃。(详细信息,请单击〃帮助〃。)
在下一个对话框(同样名为〃创建SQL Server的新数据源”)中,选择登录设置。
注意典型情况下,您只能使用日志来调试数据库访问问题。
在〃ODBCMicrosoft SQL Server安装程序〃对话框中,单击〃测试数据源〃。如果DSN正确创建,”测试结果”对话框将指出测试成功完成。
SQL server连接和安全信息
如果您正在开发用于连接远程SQL Server数据库的ASP数据库应用程序,应考虑以下问题:
连接方案:您可以选择TCP/IP套接字和命名管道的方法访问远程的SQL Server数据库。当使用命名管道时,因为在建立连接之前,数据库用户必须被Windows NT确认,所以对只有适当的SQL Server访问身份而在该计算机上没有Windows NT用户帐号的用户可能会被拒绝访问命名管道。作为一种替代方案,使用TCP/IP套接字的连接可直接连接到数据库服务器,而不必通过使用命名管道的中间计算机。因为使用TCP/IP套接字连接可直接连接到数据库server,所以通过SQL Server的确认,用户就可以获得访问权,而不必通过Windows NT的确认。
注意在连接到远程数据库时使用 TCP/IP 套接字可提高性能。
安全性:如果您使用SQL Server的集成或混合安全特性,并且SQL Server数据库位于远程服务器上,则不能使用Windows NT请求/响应的确认。也就是说,不能将Windows NT请求/响应身份证转发到远程计算机上,而只能使用基本身份验证,它根据用户提供用户名和口令信息进行。
有关这一主题的详细信息,请参阅http://microsoft。/sqlsupport/上的Microsoft SQL Server技术支持主页。
配置Oracle数据库文件DSN
首先要确保Oracle用户软件被正确地安装要创建DSN的计算机上。详细信息,请与服务器管理员联系或参阅数据库软件文档。
在〃创建新数据源〃对话框中,从列表框中选择〃MicrosoftODBCfor Oracle”,然后单击”下一步”。
键入DSN文件的名称,然后单击”下一步”。
单击〃完成〃创建数据源。
输入用户名、密码和服务器名,然后单击〃确定〃。
注意DSN文件用。dsn扩展名,位于 Programsmon FilesODBCData Sources 目录中。
有关创建DSN文件的详细信息,请访问Microsoft ODBC Web站点:http://microsoft。/odbc/。
连接数据库
访问数据库信息的第一步是和数据库源建立连接。ADO提供Connection对象,可以使用该对象建立和管理应用程序和ODBC数据库之间的连接。Connection对象具有各种属性和方法,可以使用它们打开和关闭数据库连接,并且发出查询请求来更新信息。要建立数据库连接,首先应创建Connection对象的实例。例如,下面的脚本创建 Connection对象,接着打开数据库连接:
注意无论在等号(=)之前还是之后,DSN字符串都不能包含空格。
在这种情况下,Connection 对象的Open方法引用基于DSN的文件,其中包含关于数据库的位置和配置信息。也可以不引用DSN,直接显式引用供应程序、数据源、用户ID和密码。有关建立连接的可选方法的详细信息,请参阅Microsoft ActiveX Data Objects(ADO)。
用Connection对象执行查询
用Connection对象的Execute方法,您可以发出结构化查询语言(SQL)查询数据库源并检索结果。SQL是用于与数据库通讯的工业标准语言,它有许多命令可用来检索和更新信息。
下面的脚本使用Connection对象的Execute方法在SQL INSERT命令的表格中发出查询,该命令将数据插入特定的数据库表格。在下面的示例中,脚本将名称Jose Lugo插入名为Customers的数据库表中。
注意基于DSN路径字符串的文件在等号(=)前后不应包含空格。
除了SQL INSERT命令以外,您也可以使用SQL UPDATE和DELETE命令更改和删除数据库信息。
用SQL UPDATE命令,您可以改变数据库表中各项目值。下面的脚本使用UPDATE命令将Customers表中每个LastName字段包含姓Smith 记录的FirstName字段更改为Jeff。
要想从数据库表中删除特定的记录,可使用SQL DELETE命令。下面的脚本从Customers表中删除了所有姓Smith的行:
注意在使用SQL DELETE命令时,必须谨慎从事。当使用不带WHERE子句的DELETE命令时,它将删除表中的所有行。一定要包含SQL WHERE子句来指定要删除的确切行。
使用Recordset对象处理结果
尽管Connection对象简化了连接数据库和查询任务,但Connection对象仍有许多不足。确切地说,检索和显示数据库信息的Connection对象不能用于创建脚本;您必须确切知道要对数据库作出的更改,然后才能使用查询实现更改。
对于检索数据、检查结果、更改数据库,ADO提供了Recordset对象。正如它的名称所暗示的那样,Recordset对象有许多您可以使用的特性,根据您的查询限