仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 432|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:使用ASP存取各类经常使用范例数据库

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。数据|数据库  择要:
  本文会商使用ASP存取DBF、DBC、MDB、Excel、SQLServer型数据的办法及函数完成,最初给出一个使用本文供应的函数存取Excel型数据库的例子,对企奇迹数据重用及共享具有很强的实践意义。

  关头词:

  ASP数据库存取DBFDBCMDBExcelSQLServer

  媒介

  在Internet/Intranet网页上到处可见留言板、会商组、网上投票、网上查询拜访、谈天室等Internet功效模块,这些程序都是使用ASP(ActiveServerPage)与数据库手艺分离而完成的。在Internet/Intranet上用的数据库多数是mdb数据库或SQL<数据库,可是在企奇迹Intranet<网中,各类版本的数据库已存在如DBF<、DBC、Excel、文本数据库,这些数据库是由使用软件如办公主动化体系、财政软件等所天生,假如ASP能间接使用这些范例数据库,就不必要从头创建数据库,进一步完成企业数据共享,事实这些数据库能不克不及间接被ASP利用,笔者经由临时切磋总结出给出一定的谜底。
  1、ASP的工具存取数据库办法
  在ASP中,用来存取数据库的工具统称ADO(ActiveDataObjects),次要含有三种工具:Connection、Recordset、Command,个中Connection卖力翻开或毗连数据库,Recordset卖力存取数据表,Command卖力对数据库实行举动查询(ActionQuery)命令和实行SQLServer的StoredProcedure。只依托这三个工具仍是没法存取数据库的,还必需具无数据库存取的驱动程序:OLEDB驱动程序和ODBC驱动程序。关于任何一种数据库都必需有绝对应的OLEDB驱动程序和ODBC驱动程序,ADO<才干对数据库举行存取。存取历程可用下图形貌:





  由上图可知,ADO工具必需与各类驱动程序分离才干存取各类范例数据库,分歧的数据库必要分歧的驱动程序。事实呆板上已安装哪些驱动程序呢?可经由过程以下的办法来考证:Windows9X或NT的“入手下手”→“设置”→“把持面板”→“ODBCDataSource(32Bit)”中的“驱动程序”标签页查证我们的呆板上事实装了哪些驱动程序。大抵有以下表所列的驱动程序:
<驱动程序

<合用数据库范例

Microsoft.Jet.OLEDB.4.0
Mdb
MicrosoftAccessDriver
Access
MicrosoftdBaseDriver
Dbase
MicrosoftExcelDriver
Excel
MicrosoftVisualFoxProDriver
Dbc
SQLOLEDB.1
SQLServer7.0

  2、毗连数据库和翻开数据表
  分歧的数据库毗连办法纷歧样(即创建Connection的实例办法纷歧样),一旦创建Connection实例终了,使用Recordset工具举行存取数取数据的办法迥然不同,上面关于分歧的数据范例,编写了绝对应的毗连函数,其原型以下:

  1)FunctionCreatMdbRecordset(数据库文件名,数据表文件名或Select语句);创建Mdb范例的数据库工具

  2)FunctionCreateSecuredMdbRecordset(数据库文件名,数据表文件名或Select语句,暗码);创建带暗码的MDB范例的数据库工具;

  3)FunctionCreateDbfRecordset(目次名,DBF文件名或Select语句);创建DBF范例的数据库工具;

  4)FunctionCreateDbcRecordset(DBC数据库文件名,数据表名或Select语句);创建DBC范例的数据库工具;

  5)FunctionCreateExcelRecordset(XLS文件名,Sheet名);创建Excel范例的数据库工具;

  6)FunctionCreateSQLServerRecordset(盘算机称号,用户ID,用户暗码,数据库称号数据表或检察表或Select指令);创建SQLServer范例的数据库工具;
  3、程序清单
以下程序用VBScript编写

1)创建MdbRecordset工具,Mdb数据库是一个完全的数据库,外部大概含有多少个数据表,在此函数中,Connection的感化是毗连数据库,Recordset的感化是翻开数据表。

FunctionCreateMdbRecordset(数据库文件名,数据表名或Select语句)

Dimconn,Provider,DBPath

创建Connection工具
Setconn=Server.CreateObject("ADODB.Connection")
Provider="Provider=Microsoft.Jet.OLEDB.4.0;"
DBPath="DataSource="&Server.MapPath("数据库文件名")
翻开数据库
conn.OpenProvider&DBPath

SetCreateMdbRecordset=Server.CreateObject("ADODB.Recordset")
翻开数据表,参数二为Connection工具
CreateMdbRecordset.Open"数据表名",conn,2,2

EndFunction

2)创建带暗码的Mdb数据库的Recordset工具,它的创建体例与创建不带暗码的Mdb数据库的Recordset工具相似,只是多了一个暗码参数,即在与数据库毗连时,必需给出暗码信息。

FunctionCreateSecuredMdbRecordset(数据库文件名,数据表名或Select语句,password)

Dimconn,Provider,DBPath

创建Connection工具
Setconn=Server.CreateObject("ADODB.Connection")
Provider="Provider=Microsoft.Jet.OLEDB.4.0;"
DBPath="DataSource="&Server.MapPath("数据库文件名")
毗连数据库,注重上面一行带有暗码参数
conn.OpenProvider&DBPath&”JetOLEDB:DatabasePassword=”&assword
SetCreateSecuredMdbRecordset=Server.CreateObject("ADODB.Recordset")
翻开数据表,参数二为Connection工具
CreateSecuredMdbRecordset.Open"数据表名",conn,2,2

EndFunction

3)DBF文件不是一个尺度的数据库文件,只相称于尺度数据库文件中的一个数据表,以是为了利用DBF文件,接纳把一切的DBF文件放在一个目次下,如许把目次名当作尺度数据中的数据库表,每个DBF文件相称于尺度数据库的数据表。上面函数中Directory是DBF地点的目次名,

FunctionCreateDbfRecordset(目次名,DBF文件名或Select语句)

Dimconn,Driver,SourceType,DBPath

创建Connection工具
Setconn=Server.CreateObject("ADODB.Connection")
Driver="Driver={MicrosoftVisualFoxProDriver};"
SourceType="SourceType=DBF;"
DBPath="SourceDB="&Server.MapPath("目次名")

挪用Open办法翻开数据库
conn.OpenDriver&SourceType&DBPath

SetCreateDbfRecordset=Server.CreateObject("ADODB.Recordset")
翻开DBF文件,参数二为Connection工具
CreateDbfRecordset.OpenDBF文件名或Select语句,conn,2,2

EndFunction
4)由Foxpro天生的DBC数据库与MDB数据库类似,都是一个数据库包括几个数据表的情势,以是对DBC数据库的存取办法与MDB数据库类似。

FunctionCreateDbcRecordset(DBC数据库文件名,数据表名或Select语句)

Dimconn,Driver,SourceType,DBPath

创建Connection工具
Setconn=Server.CreateObject("ADODB.Connection")
Driver="Driver={MicrosoftVisualFoxProDriver};"
SourceType="SourceType=DBC;"
DBPath="SourceDB="&Server.MapPath("DBC数据库文件名")
毗连数据库
conn.OpenDriver&SourceType&DBPath
SetCreateDbcRecordset=Server.CreateObject("ADODB.Recordset")
翻开数据表,参数二为Connection工具
CreateDbcRecordset.Open"数据表名或Select语句",conn,2,2

EndFunction

5)将Excel97或Excel2000天生的XLS文件(book)当作一个数据库,个中的每个事情表(sheet)当作数据库表。

FunctionCreateExcelRecordset(XLS文件名,Sheet名)

Dimconn.Driver,DBPath

创建Connection工具
Setconn=Server.CreateObject("ADODB.Connection")
Driver="Driver={MicrosoftExcelDriver(*.xls)};"
DBPath="DBQ="&Server.MapPath("XLS文件名")

挪用Open办法翻开数据库
conn.OpenDriver&DBPath
SetCreateExcelRecordset=Server.CreateObject("ADODB.Recordset")
翻开Sheet,参数二为Connection工具,由于ExcelODBC驱动程序没法间接用sheet名来翻开sheet,以是请注重以下的select语句
CreateExcelRecordset.Open"Select*From["&sheet&”$]”,conn,2,2

EndFunction

6)SQLServer属于Server级的数据库,利用时请求对照严厉,必需请求输出用户名及暗码才干利用。

  FunctionCreateSQLServerRecordset(盘算机称号,用户ID,用户暗码,数据库称号数据表或检察表或Select指令)

DimParams,conn

SetCreatSQLServerConnection=Nothing

Setconn=Server.CreateObject("ADODB.Connection")

Params="Provider=SQLOLEDB.1"

Params=Params&";DataSource="&Computer

Params=Params&";UserID="&UserID

Params=Params&";Password="&Password

Params=Params&".InitialCatalog="&数据库称号

ConnopenParas

SetCreateSQLServerRecordset=Server.CreateObject("ADODB.Recordset")

CreateSQLServerRecordset.Opensource,conn,2,2

EndFunction

  使用下面的函数就能够翻开经常使用范例的数据库,然后使用ADO的Recordset工具的增添纪录、删除纪录、修正纪录等功效就能够对数据库举行操纵。可是要申明的是,在实践开辟中我们发明,假如利用DBF、DBC、Excel数据库,实行效力没有MDB数据库效力高,最好尽量用MDB范例数据库。

  假如用用DBF、DBC、Excel数据库,上面几点要注重:Excel数据库只能读取、增添纪录、修正纪录,但不克不及删除纪录;DBF、DBC<能够读取纪录、增添纪录、删除纪录、修正纪录,可是在增添纪录时,任何一个字段值都不克不及为空,由此可看出范围性很年夜,以是尽量地用MDB或SQL数据库。
  4、实例(存取Excel数据表)
  为了更进一步申明这些函数的用法,本文给出一个存取Excel数据表的例子,别的函数的存取办法与此相似。假定有一个如的名为1.xls的Excel文件,含有三个事情表一班、二班、三班。上面得用下面的函数存取事情表“一班”的数据。






编写ASP文件(文件名为1.asp)存取此Excel中文件。

1.asp源代码

ASP文件<%

创建Connection工具

FunctionCreateExcelRecordset(xlsfile,sheet)

Dimrs,conn,Driver,DBPath

Setconn=Server.CreateObject("ADODB.Connection")

Driver="Driver={MicrosoftExcelDriver(*.xls)};"

DBPath="DBQ="&Server.MapPath("xlsfile")

挪用Open办法毗连数据库

conn.OpenDriver&DBPath

setCreateExcelRecordset=Server.CreateObject("ADODB.Recordset")

翻开Sheet表,参数二>Connection工具

CreateExcelRecordset.Open"Select*From["&sheet&"$]",conn,2,2

EndFunction

%>

<HTML>

<BODYbgcolor="#FFFFFF">

<TABLEBORDER=1>

<TRBGCOLOR=#00FFFF>

<%

本行是关头行,对函数的援用

setrs=CreateExcelRecordset("1.xls","一班")

PartI输入“表头称号”且表头的背景的色彩为#00FFFF

Fori=0tors.Fields.Count-1

Response.Write"<TD>"&rs(i).Name&"</TD>"

Next

%>

</TR>

<%

Part>输入数据表的“内容”v

rs.MoveFirst将今朝的数据纪录移到第一项

WhileNotrs.EOF判别是不是过了最初一项

Row="<TR>"

Fori=0tors.Fields.Count-1

Row=Row&"<TD>"&rs(i)&"</TD>"

Next

Response.WriteRow&"</TR>"

rs.MoveNext移到下一项

Wend

%>

</TABLE></CENTER>

</BODY>

</HTML>

使用IE和PWS(PersonalWebServer)后扫瞄了局如:






参考文献:

[1]DataBaseandtheWorldWideWebMarianneWinslett,UniversityofIllinois

[2]http://www.aspobjects.com
优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件
山那边是海 该用户已被删除
沙发
发表于 2015-1-19 05:25:22 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
乐观 该用户已被删除
板凳
发表于 2015-1-27 07:27:41 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
莫相离 该用户已被删除
地板
发表于 2015-2-5 04:47:21 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
深爱那片海 该用户已被删除
5#
发表于 2015-2-11 05:30:49 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
爱飞 该用户已被删除
6#
发表于 2015-3-1 22:35:53 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
变相怪杰 该用户已被删除
7#
发表于 2015-3-11 01:07:49 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-17 17:39:55 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
不帅 该用户已被删除
9#
发表于 2015-3-24 17:54:12 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表