大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> ASP专区 -> asp访问数据源综述2(转自IIS5.0文档)

asp访问数据源综述2(转自IIS5.0文档)

时间: 2021-07-31 作者:daque

运用 recordset 东西处置截止为了检索数据、查看截止和变动数据库,ado 供给了 recordset 东西。正如名字所示,“recordset”东西具备用来检索和表露数据库行(或叫“记载”)的功效,这在于于您的查问牵制前提。“recordset”东西保持由查问归来的每一条记载的场所,如许就能使您察看一切的截止,历次一条。检索记载集胜利的 web 数据运用步调既运用“connection”东西来创造链接,又运用“recordset”东西来处置归来的数据。经过归纳运用这两种东西的少许特出功效,开拓出的数据库运用步调简直不妨实行一切的数据处置工作。比方,底下的效劳器端剧本运用“recordset”东西实行 sql 的 select 吩咐。此 select 吩咐用来检索鉴于查问牵制前提的消息集。此查问也包括 sql where 子句,用来将查问控制到一个指定的规范。在本例中,where 子句将查问控制在 customers 数据库表中姓氏字段包括 smith 的一切记载。<%'创造数据源贯穿strconnectionstring = "provider=microsoft.jet.oledb.4.0;data source=c:\data\employees.mdb"set cnn = server.createobject("adodb.connection")cnn.open strconnectionstring'例示 recordset 东西set rstcustomers = server.createobject("adodb.recordset")'运用 open 本领翻开记载集'并运用经过 connection 东西创造的贯穿。strsql = "select firstname, lastname from customers where lastname = 'smith' "rstcustomers.open strsql, cnn'遍历记载集和表露截止'并运用 movenext 本领递加记载场所。set objfirstname = rstcustomers("firstname")set objlastname = rstcustomers("lastname")do until rstcustomers.eofresponse.write objfirstname & " " & objlastname & "<br>"rstcustomers.movenextloop%>提防,在上例中,“connection”东西创造数据库贯穿,而“recordset”东西运用同一贯穿从数据库中检索截止。当须要透彻摆设创造数据库链接的办法时,该本领特殊有效。比方,即使要指定在贯穿遏止之前的功夫推迟,大概须要运用“connection”东西树立该属性。然而,即使只想运用 ado 的默许贯穿属性创造贯穿,您不妨运用“recordset”东西的“open”本领来创造链接:<%strconnectionstring = "provider=microsoft.jet.oledb.4.0;data source=c:\data\employees.mdb"strsql = "select firstname, lastname from customers where lastname = 'smith' "set rstcustomers = server.createobject("adodb.recordset")'运用 open 本领翻开贯穿'并运用经过 connection 东西创造的贯穿。rstcustomers.open strsql, strconnectionstring'遍历记载集,表露截止,'并运用 movenext 本领递加记载场所。set objfirstname = rstcustomers("firstname")set objlastname = rstcustomers("lastname")do until rstcustomers.eofresponse.write objfirstname & " " & objlastname & "<br>"rstcustomers.movenextloop%>当运用“recordset”东西的“open”本领来创造贯穿时,本质上正在隐含地运用“connection”东西养护链接的安定。精细消息,请参见 microsoft activex 数据东西 (ado) 文书档案,可在 microsoft universal data access web 站点 http://www.microsoft.com/data/ 上找到该文书档案。提防 要鲜明普及 asp 数据库运用步调的本能,请商量在“运用步调”状况中高速缓存记载集。精细消息,请参见高速缓存数据。 统计记载会合归来的记载数有功夫很有效。“recordset”东西的“open”本领使您不妨指定可选的光标参数,以决定潜伏供给者检索和欣赏记载集的本领。经过给用来实行查问的语句增添 adopenkeyset 光标参数,不妨使存户端运用步调实足地欣赏记载集。所以,运用步调可运用 recordcount 属性透彻地统计记载会合的记载数。请参看底下的示例:<% set rs = server.createobject("adodb.recordset") rs.open "select * from neworders", "provider=microsoft.jet.oledb.3.51;data source='c:\customerorders\orders.mdb'", adopenkeyset, adlockoptimistic, adcmdtext '运用 recordset 东西的 recordcount 属性举行统计。 if rs.recordcount >= 5 then response.write "咱们仍旧收到底下" & rs.recordcount & "个新订单<br>" do until rs.eof response.write rs("customerfirstname") & " " & rs("customerlastname") & "<br>" response.write rs("accountnumber") & "<br>" response.write rs("quantity") & "<br>" response.write rs("deliverydate") & "<br><br>" rs.movenext loop else response.write "订单数少于 " & rs.recordcount & "。" end ifrs.close%>运用 command 东西革新查问运用 ado 的 command 东西实行查问的办法与运用“connection”和“recordset”东西实行查问的办法一律,然而运用“command”东西不妨筹备(或编写翻译)对数据库源的查问,而后运用百般各别的值反复发送此查问。用这种本领编写翻译查问的长处在乎,当您须要从新颁布窜改过的已有查问时,不妨大地面缩小颁布功夫。其余,还不妨留住局部 sql 查问不举行设置,用到了在实行之前变换查问局部的选项。“command”东西的“parameters”汇合不妨使您制止历次从新颁布查问时都要重修查问的烦恼。比方,即使您须要按期革新鉴于 web 的仓库储存体例的供给和用度消息,就不妨依照底下的办法预订义查问:<%'运用 connection 东西翻开贯穿提防,command 东西'并不具备用来创造贯穿的 open 本领。strconnectionstring = "provider=microsoft.jet.oledb.4.0;data source=c:\data\inventory.mdb"set cnn = server.createobject("adodb.connection")cnn.open strconnectionstring'例示 command 东西;运用 activeconnection 属性将'贯穿附加到 command 东西上。set cmn= server.createobject("adodb.command")set cmn.activeconnection = cnn'设置 sql 查问。cmn.commandtext = "insert into inventory (material, quantity) values (?, ?)"'在 command 东西初次实行之前生存在 commandtext 属性'中指定的查问的计划(或摘编译)本子。cmn.prepared = true'设置查问参数摆设消息。cmn.parameters.append cmn.createparameter("material_type",advarchar, ,255 )cmn.parameters.append cmn.createparameter("quantity",advarchar, ,255 )'设置并实行第一个插入操纵。cmn("material_type") = "阳光灯胆"cmn("quantity") = "40"cmn.execute ,,adcmdtext + adexecutenorecords'设置并实行第二个插入操纵。cmn("material_type") = "保障丝"cmn("quantity") = "600"cmn.execute ,,adcmdtext + adexecutenorecords . . . %>重心 ado 参数(如 adcmdtext)是少许大略变量,这表示着在运用数据考察剧本中的 ado 参数之前须要先设置参数值。因为 ado 运用了洪量的参数,所以经过“组件典型库”来设置参数更简单些,组件典型库是包括一切 ado 参数和恒量设置的文献。相关实行 ado 典型库的精细消息,请参见运用变量和恒量中心中的运用恒量局部。在上例中,您将提防到剧本运用各别的值反复建立和从新颁布 sql 查问,但并没有从新设置并从新发送查问到数据库源中。运用“command”吩咐编写翻译查问也犹如下便宜:可制止当将字符串和变量贯穿成 sql 查问时惹起题目。更加地,运用“command”东西的“parameter”汇合,您不妨制止那些与设置一定典型字符串、日子和功夫变量关系的题目。比方,包括单引号 (') 的 sql 查问值大概引导查问波折: strsql = "insert into customers (firstname, lastname) values ('robert','o'hara')" 提防,姓氏“o'hara”包括一个单引号,这与用来表白 sql values 要害字中数据的单引号辩论。经过将查问值牵制为“command”东西参数不妨制止该类题目。兼并 html 表单和数据库考察包括 html 表单的 web 页可承诺用户长途查问数据库并检索指定的消息。运用 ado 您不妨创造出特殊大略的用来搜集用户表单消息的剧本、创造自设置的数据库查问并将消息归来给用户。运用 asp 的“request”东西,您不妨检索输出到 html 表单中的消息并将那些消息嵌入到 sql 语句中。比方,底下的剧本块会将由 html 表单供给的消息插入到表中。剧本运用“request”东西的“form”汇合来搜集用户消息。<%'运用 connection 东西翻开贯穿command 东西'并不具备用来创造贯穿的 open 本领。strconnectionstring = "provider=microsoft.jet.oledb.4.0;data source=d:\companycatalog\seeds.mdb" set cnn = server.createobject("adodb.connection") cnn.open strconnectionstring'例示 command 东西'并运用 activeconnection 属性附加东西'贯穿附加到 command 东西上。set cmn= server.createobject("adodb.command")set cmn.activeconnection = cnn'设置 sql 查问。cmn.commandtext = "insert into myseedstable (type) values (?)"'设置查问参数摆设消息。cmn.parameters.append cmn.createparameter("type",advarchar, ,255)'指使输出值并实行革新。cmn("type") = request.form("seedtype")cmn.execute ,,adcmdtext + adexecutenorecords%>相关表单和运用 asp“request”东西的精细消息,请参见处置用户输出。处置数据库贯穿安排完备的 web 数据库运用步调(如效劳不计其数个存户的联机定购输出运用步调)的一个重要挑拨即是怎样精确处置数据库贯穿。翻开并保护数据库贯穿,更加是当没有消息传输时也要翻开和保护,会重要耗费数据库效劳器的资源并引导贯穿性题目。安排杰出的 web 数据库运用步调可反复运用数据库贯穿并积累因搜集通讯量引导的推迟。超时贯穿数据库效劳器当震动遽然猛增时会爆发积存,同声大大减少创造数据库贯穿所需的功夫。所以,过多的贯穿推迟会贬低数据库运用步调的本能。运用“connection”东西的“connectiontimeout”不妨控制运用步调在停止贯穿试验并颁布缺点动静之前等候的功夫数。比方,底下的剧本将“connectiontimeout”属性树立为在废除贯穿试验之前等候 20 秒。set cnn = server.createobject("adodb.connection")cnn.connectiontimeout = 20cnn.open "provider=microsoft.jet.oledb.4.0;data source=c:\data\inventory.mdb"“connectiontimeout”属性默许为 30 秒。提防 在将“connectiontimeout”属性并入数据库运用步调之前,请保证您的贯穿供给者和数据源扶助该属性。共用贯穿贯穿池可使您的 web 运用步调运用“池”中的贯穿,“池”指的是包括很多不须要从新创造的自在贯穿的容器。创造贯穿并放入贯穿池中后,运用步调不妨反复运用该贯穿而不用实行贯穿过程。这可鲜明地普及本能,更加是在运用步调经过搜集贯穿或须要反复贯穿和割断的情景下更是如许。其余,共用的贯穿可被多个运用步调反复运用。ole db 对话池ole db 具备一个共用个性,称为“对话池”,用来普及巨型 web 数据库运用步调的震动本能。对话池养护贯穿安定和少许其余属性。共用的贯穿只在贯穿两头提出配合的乞求时才可从新运用。默许情景下,microsoft sql server 和 oracle 的 ole db 供给者扶助对话池。这表示着并不须要摆设运用步调、效劳器或数据库即可运用对话池。但是,即使供给者默许情景下不扶助对话池,则须要创造备案表树立以起用对话池。对于对话池的精细消息,请参见 ole db 2.0 software development kit (sdk) 文书档案。odbc 贯穿池即使蓄意 odbc 启动步调瓜分贯穿池,您必需摆设一定的数据库启动步调,而后在 windows 备案表中树立启动步调的“cptimeout”属性。“cptimeout”属性决定贯穿在贯穿池中保持的功夫长度。即使贯穿在池中保持的功夫胜过“cptimeout”树立的连接功夫,贯穿将封闭并从池中简略。“cptimeout”的默许值是 60 秒。经过创造带有底下树立的备案表键值,您不妨有采用地树立“cptimeout”属性以起用一定 odbc 数据库启动步调的贯穿池:\hkey_local_machine\software\odbc\odbcinst.ini\driver-name\cptimeout = 超时数(reg_sz, 以秒为单元)比方,底下的键值将 sql server 启动步调的贯穿池超时树立为 180 秒(3 秒钟)。\hkey_local_machine\software\odbc\odbcinst.ini\sql server\cptimeout = 180提防 默许情景下,web 效劳器激活 sql server 的贯穿池并将“cptimeout”树立为 60 秒。运用跨多页的贯穿固然不妨经过将贯穿积聚在 asp 的“application”东西中来反复运用跨多页的贯穿,但如许做大概引导不用本地维持翻开的贯穿,而且大概妨碍运用贯穿池的上风。即使有很多用户须要贯穿到同一 asp 运用步调,一种更好的本领是反复运用跨多个 web 页的数据库贯穿字符串,只需将字符串安置到 asp 的“application”东西中即可。比方,您不妨在 global.asa 文献的 application_onstart 事变进程中指定贯穿字符串,如底下的剧本所示:application("connectionstring") = "provider=microsoft.jet.oledb.4.0;data source=c:\data\inventory.mdb"而后在每一个考察数据库的 asp 文献中,写入<object runat=server id=cnn progid="adodb.connection"></object>以创造该页的贯穿东西范例,并运用剧本cnn.open application("connectionstring")翻开该贯穿。要封闭贯穿,在该页的结束不妨运用cnn.close在部分用户须要反复运用跨多个 web 页贯穿的情景下,您将创造运用“session”东西积聚贯穿字符串比运用“application”东西更具上风。封闭贯穿要充溢运用贯穿池,请尽大概显式封闭数据库贯穿。默许情景下,贯穿在剧本实行完后中断。但是,经过显式封闭剧本已不复须要的贯穿,您不妨缩小对数据库效劳器的诉求,并使得其余用户不妨运用该贯穿。不妨运用“connection”东西的“close”本领显式中断“connection”东西和数据库之间的贯穿。底下的剧本将翻开和封闭贯穿:<%strconnectionstring = "provider=microsoft.jet.oledb.4.0;data source=c:\data\inventory.mdb"set cnn = server.createobject("adodb.connection")cnn.open strconnectionstringcnn.close%>--------------------------------------------------------------------------------© 1997-1999 microsoft corporation。保持一切权力。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.