ASP网站制作之ASP与数据库(一)
缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。在后面几讲中,我们已进修了ASP的基础内容,天真利用这些常识,你已可使用ASP创建一个Web站点了。但一样平常来讲,一个真实的、完全的站点是离不开数据库的,由于大批的数据,如网页会见人数等完整能够存储在文本文件中,但实践使用中,必要保留的数据远不止这一点点,并且这些数据之间常常另有联系关系,使用数据库来办理这些数据,能够很便利的查询和更新。数据库有良多种,如:Fox数据库(.dbf)、Access数据库(.mdb)、Informix、Oracle和SQLServer等等,在本讲座中,我将以MicrosoftAccess数据库和SQLServer7.0为例来讲明ASP是怎样会见数据库的。为何选择ASP呢?统计数据标明,SQLServer7.0是以后最快、性价比最高的数据库,而www.8848.net、www.dell.com、www.hotbot.com等很多年夜型的网站都是利用ASP手艺创立的,以是ASP是对照简单把握并且很有用的手艺,你应当满怀信念和勇气地试着靠近它、懂得它,进而利用它。在进一步进修之前,要做哪些筹办:
1.假如你没有打仗过数据库,倡议先安装Office中的MicrosoftAccess,懂得一下数据库的基础常识。
2.最好安装MicrosoftSQLServer7.0。一旦安装好,立马便可利用,不必要甚么设置,注重在Windows9.x中应安装DeskTop版本,而7.0之前的版本只能安装在NTServer中。
3.接上去所会商的内容,必要一个叫做MDAC(MicrosoftDataAccessComponents)的组件,这个组件已包括在ASP中,假如你想懂得更多的相干内容,大概下载最新的版本,能够会见http://www.microsoft.com/data。
1、与数据库创建毗连
在正式入手下手之前,先先容一下ADO――ActiveXDataObjects,刚打仗这个观点,你只需把ADO看做ASP与数据库之间的桥梁就能够了。
(一)与MicrosoftAccess数据库创建毗连
办法一:例wuf40.asp
<%@LANGUAGE=VBScript%>
<%wuf40.asp
OptionExplicit
DimCnn,StrCnn
1-创立Connection工具
SetCnn=Server.CreateObject("ADODB.Connection")
StrCnn="Driver={MicrosoftAccessDriver(*.mdb)};DBQ="&Server.MapPath("asp")&"NorthWind.mdb;"
‘2-利用Connection工具的Open办法翻开数据库
Cnn.OpenStrCnn
Response.WriteServer.MapPath("asp")&"NorthWind.mdb;"&"<br>"
Response.Write"数据库毗连乐成:"&Cnn.State&"<br>"
3-利用Connection工具的Close办法封闭毗连
Cnn.close
Response.Write"数据库已封闭:"&Cnn.State
4-将Connection工具从内存中删除,以开释试?BR>SetCnn=Nothing
%>
Northwind.mdb是MicrosoftAccess97自带的一个示例数据库,一样平常位于目次“MicrosoftOfficeOfficeSamples”下,你能够本人找一下,然后将这个文件拷至Web服务器响应目次下(本例中放在C:InetPubhomeasp下)。
在这里,Server工具的MapPath办法将指定的假造路径转换为实在的文件路径,终极了局相似:C:InetPubhomeaspNorthwind.mdb。
办法二:用OLEDB创立MicrosoftAccess毗连,上面列出关头部分。
SetCnn=Server.CreateObject("ADODB.Connection")
StrCnn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:InetpubhomeaspNorthwind.mdb"
Cnn.OpenStrCnn
(二)与SQLServer数据库创建毗连
办法一:用OLEDB毗连SQLServer,详见例程wuf41.asp。
SetCnn=Server.CreateObject("ADODB.Connection")
StrCnn="Provider=sqloledb;UserID=sa;Password=;InitialCatalog=pubs;DataSource=ICBCZJP"
Cnn.OpenStrCnn
InitialCatalog后指定命据库名,DataSource后为呆板名(即收集→属性→标识中的盘算机名)或IP地点(必要安装DNS服务)。
办法二:
SetCnn=Server.CreateObject("ADODB.Connection")
StrCnn="Driver={SQLServer};Server=ICBCZJP;UID=sa;PWD=;Database=pubs"
Cnn.OpenStrCnn
除上述的两种办法以外,固然还可以使用很多文章、材料中先容的最典范的办法:利用ODBC天生毗连。就是先在Web服务器把持面板的“ODBCDataSources”中创建一个毗连,然后在ASP中利用相似“StrCnn="DSN=ADOCnn;UID=sa;PWD=;Database=pubs"”的毗连字符串。这里不具体先容,一来这不是最好的办法,二来其他材料都先容了该办法。
别的,有乐趣可下载例程wuf42.asp看看怎样利用Connection工具的ConnectionTimeout和ConnectionString属性。
2、数据库从这里起步――检索数据库中已存在的数据
如今假定你已有最基础的数据库常识,晓得怎样利用MicrosoftAccess翻开Northwind.mdb中的“运货商”表,看到表中贮存的几条数据。如今成绩是怎样利用ASP在扫瞄器中显现这些数据,上面先容三种办法。
出格提示:假如你的数据库基础较薄,只需会利用第二种办法就好了,切不成贪多,以避免走火进魔,牢记!牢记!
办法一:只利用Connection工具。例wuf43.asp
<%@LANGUAGE=VBScript%>
<%wuf43.asp
OptionExplicit
这一句长短常主要的,它能够确保所看到的数据不是缓存在客户真个数据,
而是服务器端随时更新过的最新数据
Response.Expires=0
第一部分:创建毗连
DimCnn,StrCnn
SetCnn=Server.CreateObject("ADODB.Connection")
StrCnn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:InetpubhomeaspNorthwind.mdb"
Cnn.OpenStrCnn
第二部分:利用Connection工具的Execute办法失掉纪录集
DimStrSQL,rsTest
上面是一句SQL语句(布局化查询语句),本讲座细先容
‘倡议找本书看看,基础利用仍是对照复杂的,一学就会
这一句的意义是从运货商表当选出一切的数据
StrSQL="Select*From运货商"
SetrsTest=Cnn.Execute(StrSQL)
%>
<HTML>
<BODY>
<%第三部分:将失掉的纪录集显现到扫瞄器上
轮回至纪录开端-一行一行、一笔记录一笔记录的显现
DoWhileNotrsTest.EOF
上面这两行的感化是一样的,即rsTest("运货商ID")同等于rsTest(0)
Response.WritersTest("运货商ID")&""&rsTest("公司称号")&""&rsTest("德律风")&""&"<BR>"
Response.WritersTest(0)&""&rsTest(1)&""&rsTest(2)&""&"<BR>"
移到下一笔记录-这一句可万万不克不及少不然就堕入逝世轮回
rsTest.MoveNext
Loop
第四部分:扫除疆场
Cnn.close
SetrsTest=Nothing:SetCnn=Nothing
%>
</BODY>
</HTML>
这个例子是很复杂的,第三部分显现数据是数据库典范的输入款式,你能够参照之前所学的常识加上表格和色彩丑化输入了局。
非低级用户能够参考wuf44.asp看看Execute办法的完全利用。
办法二:经由过程创立Recordset工具――牢记初学者只求把握这类办法便够了。
例:wuf45.asp,其他部分同wuf43.asp,关头在于程序的第二部分。
第二部分:经由过程创立RecordSet工具失掉纪录集
DimStrSQL,rsTest
创立Recordset工具
SetrsTest=Server.CreateObject("ADODB.Recordset")
StrSQL="Select运货商ID,德律风,公司称号From运货商Where德律风=(503)555-9931"
将Recordset工具附加到毗连Cnn
SetrsTest.ActiveConnection=Cnn
利用Recordset工具的Open办法翻开纪录集
rsTest.OpenStrSQL
如今让我们看看Recordset工具Open办法的完全用法,例wuf48.asp。
<%@LANGUAGE=VBScript%>
<%wuf48.asp
OptionExplicit
Response.Expires=0
%>
<!--#includefile="adovbs.inc"-->
<%
第一部分:创建毗连
DimCnn,StrCnn
SetCnn=Server.CreateObject("ADODB.Connection")
StrCnn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:InetpubhomeaspNorthwind.mdb"
Cnn.OpenStrCnn
第二部分:经由过程创立RecordSet工具失掉纪录集
DimrsTest
SetrsTest=Server.CreateObject("ADODB.Recordset")
rsTest.Open"运货商",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdTable
%>
<HTML>
<BODY>
<%第三部分:将失掉的纪录集显现到扫瞄器上
DoWhileNotrsTest.EOF
Response.WritersTest(0)&""&rsTest(1)&""&rsTest(2)&""&"<BR>"
rsTest.MoveNext
Loop
第四部分:扫除疆场
rsTest.Close:Cnn.Close
SetrsTest=Nothing:SetCnn=Nothing
%>
</BODY>
</HTML>
剖析:
1.起首看看关头句:
rsTest.Open"运货商",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdTable
第一个参数能够是表名(如:运货商),也能够是SQL语句(如wuf45.asp)。
第二个参数指定以后的毗连。
第三个参数唆使CursorType,断定供应者翻开Recordset时应当利用的游标范例。这里接纳仅向前挪动的游标。
第四个参数唆使LockType,断定供应者翻开Recordset时应当利用的锁定(并发)范例。这里指定为只读。
第五个参数与第一个参数相干,如本例中第一个参数为表名,则第五个参数利用adCmdTable,若第一个参数为SQL语句,则第该参数为adCmdText,如:
rsTest.Open"Select*From运货商",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdText
我想不见得年夜部人都能真正弄懂这五个参数的意义,不妨,刚入手下手只需照搬会用就行,今后我们会不休打仗,熟了便能生巧。
关于CursorType和LockType这两个参数,将鄙人讲具体论述,仅仅检索数据只需按本例设置就能够了。
2.这五个参数,也能够使用Recordset工具的属性来设置,如例wuf46.asp。
第二部分:经由过程创立RecordSet工具失掉纪录集
DimrsTest
SetrsTest=Server.CreateObject("ADODB.Recordset")
rsTest.ActiveConnection=Cnn
rsTest.CursorType=adOpenForwardOnly
rsTest.LockType=adLockReadOnly
rsTest.Open"运货商",,,,adCmdTable
3.再看看这句:<!--#includefile="adovbs.inc"-->。
(1)由于利用了adOpenForwardOnly,adLockReadOnly,adCmdText如许的常数,以是必要将adovbs.inc这个文件包括出去。
(2)adovbs.inc这个文件一样平常位于目次ProgramFilesCommonFilesSYSTEMADO下,你可将它拷至Web服务器以后目次(本讲下载包中也有该文件)。
(3)用记事本翻开这个文件看一下,就分明为何必要这个文件了。
办法三:经由过程引进Command工具――这个应当在你有才能的条件下研讨。
<%@LANGUAGE=VBScript%>
<%wuf47.asp
OptionExplicit
Response.Expires=0
%>
<!--#includefile="adovbs.inc"-->
<%
第一部分:创建毗连
DimCnn,StrCnn
SetCnn=Server.CreateObject("ADODB.Connection")
StrCnn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:InetpubhomeaspNorthwind.mdb"
Cnn.OpenStrCnn
第二部分:经由过程创立Command工具失掉纪录集
DimStrSQL,rsTest,cmdTest
创立Command工具
SetcmdTest=Server.CreateObject("ADODB.Command")
StrSQL="SELECTMAX(数目)FROM定单明细"
cmdTest.CommandText=StrSQL
cmdTest.CommandType=adCmdText标明命令范例为SQL语句
SetcmdTest.ActiveConnection=Cnn
利用Command工具的Execute办法失掉纪录集。
SetrsTest=cmdTest.Execute
%>
<HTML>
<BODY>
<%第三部分:将失掉的纪录集显现到扫瞄器上
DoWhileNotrsTest.EOF
Response.WritersTest(0)&"<BR>"
rsTest.MoveNext
Loop
第四部分:扫除疆场
rsTest.Close:Cnn.Close
SetrsTest=Nothing:SetcmdTest=Nothing:SetCnn=Nothing
%>
</BODY>
</HTML>
关于Command工具的利用今后还会在数据库的深切编程中重点解说。
本讲次要先容了怎样与数据库毗连并检索数据库数据,初学者不免会有点懵懂,牢记,你只必要学会以下常识点便可:
1.怎样利用OLEDB与MicrosoftAccess数据库创建毗连;
2.怎样利用OLEDB与MicrosoftSQLServer数据库创建毗连;
3.怎样经由过程创立Recordset工具检索数据库中的数据。
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
页:
[1]