2024年6月20日发(作者:)
第
25
卷第
4
期
Vol
1
25
No
1
4
长春师范学院学报
(
自然科学版
)
JournalofChangchunNormalUniversity
(
NaturalScience
)
2006
年
8
月
Aug2006
ASP
存取常用类型数据库的编程实现
夏方林
1
,
马 宁
1
,
李小良
2
(1.唐山师范学院计算机系,河北唐山 063000;2.开滦电信公司,河北唐山 063018)
[
摘 要
]
本文介绍了
ASP
存取各种常用类型数据库的方法及函数编程
,
并给出了一个利用文中提供
的函数存取
Excel
型数据库的例子。
[
关键词
]ASP;
存取数据库
;
编程
[
中图分类号
]TP311
[
文献标识码
]A
[
文章编号
]1008-178X(2006)04-0052
2
04
1 引言
浏览网页时,我们随处可见网上调查、聊天室、留言板等因特网功能模块,这些程序都是用ASP
(
Ac2
tiveServerPage
)
与数据库相结合的技术来实现的。在因特网和企业网上用的数据库多是SQLServer数据库或
mdb数据库,但是在企业网中,诸如DBC、Excel、DBF等各种版本的数据库已存在,这些数据库是由应用软
件如财务处理软件、办公自动化管理系统等生成。为了实现数据共享,避免重复创建数据库,这就需要ASP
能直接存取这些类型的数据库。
2 ASP中存取数据库的方法
在ASP中,允许用户与数据库进行交互的组件称ADO
(
ActiveXDataObject
)
组件,而在ADO组件中使
用最多的三个主要对象是Connection、Command和Recordset,其中Connection对象用于建创数据库和ADO程序
之间的连接;Command对象负责对数据库提供请求,也就是传递指定的SQL命令;Recordset对象负责浏览与
操作
(
包括增加、修改、删除
)
从数据库中取得的数据,即RecordSet对象可以用来表示来自基本表或命令
执行结果的记录全集。当然,仅凭这三个对象是无法完成对数据库的存取操作,还必须具有存取数据库的
ODBC或OLEDB驱动程序。对于任何一种数据库都必须有相对应的ODBC和OLEDB驱动程序,ADO对象只
有与各种数据库的驱动程序相结合,才能实现对数据库的存取。不同的数据库的驱动程序不同,可通过以下
的方法来查看计算机上已安装的数据库驱动程序:在Windows操作系统中打开“控制面板”中“ODBC数据
源(32位)”(或“控制面板”中“管理工具”中的“数据源(ODBC)”)中的“驱动程序”标签页来查看,
大致有如下表所列的驱动程序:
驱动程序
MicrosoftAccessDriver
MicrosoftdBaseDriver
MicrosoftExcelDrive
.410
MicrosoftVisualFoxProDriver
SQLOLEDB.1
3 存取各种常用类型数据库的函数程序清单
Connection对象连接不同数据库的方法不一样,而一旦建立了连接,利用Recordset对象存取数据库的方
法基本相同。下面给出用VBScript脚本语言编写的创建和释放各种常用类型数据库连接对象的函数程序清
[
收稿日期
]2006-05-21
[
作者简介
]
夏方林
(
1972-
)
,
男
,
河北唐山人
,
唐山师范学院计算机系讲师
,
硕士研究生
,
从事微型计算机监控及应用、
适用数据库类型
Access
DBF
Excel
MDB
DBC
SQLServer7.0
计算机应用教学与研究。
52
单。为了简便先给出函数中要用到的两个符号常量定义如下:
constadOpenDynamic=2’使用动态类型游标,可以在记录集中向前或向后移动,对于其他用户造成的任
何记录的变化都将在记录集中有所反映。
constadLockPessimistic=2’保守式锁定(逐个),指定在编辑一个记录时立即锁定它。
311 创建存取DBF类型的数据库对象的函数程序清单
由于DBF文件只相当于标准数据库文件中的一个数据表,不是一个标准的数据库文件,因此为了使用
DBF文件,采用把所有的DBF文件放在一个目录下,这样把目录名看成标准数据库中的库文件名,每一个
DBF文件相当于标准数据库的数据表。函数中的参数directory指定DBF文件所在的目录名,sql指定DBF文
件名或SQL语句。
FunctionopenDBFDB
(
directory,sql
)
’创建Connection对象实例objConn
)
SetobjConn=Object
(
“tion”
myDSN=“Driver={MicrosoftVisualFoxProDriver};”
myDSN=myDSN&“SourceType=DBF;”
myDSN=myDSN&“SourceDB=”&h(directory)
DSN
’调用
Open
方法打开与数据库的连接
’创建Recordset对象实例objRS
SetobjRS=Object(“set”)
’打开DBF文件,参数3指定游标为动态类型,参数4指定锁定方式为保守式
l,objConn,adOpenDynamic,adLockPessimistic
EndFunction
312 创建存取Excel类型的数据库对象的函数程序清单
将Excel生成的XLS文件看成一个数据库,其中的每一个工作表看成数据库表。因ExcelODBC驱动程序
无法直接用工作表名来打开工作表,所以要操作的Excel工作表名必须写成“[工作表名$]”形式。函数中
的参数workbook指定Excel生成的XLS文件名,sql指定Excel工作表名或SQL语句。
FunctionopenExcelDB
(
workbook,sql
)
)
SetobjConn=Object
(
“tion”
myDSN=“Driver={MicrosoftExcelDriver
(
)
};”
myDSN=myDSN&“ReadOnly=0;”’0以读写方式打开Excel工作表,1以只读方式打开
myDSN=myDSN&“DBQ=”&h(workbook)
DSN
)
SetobjRS=Object
(
“set”
l,objConn,adOpenDynamic,adLockPessimistic
EndFunction
313 创建存取MDB类型的数据库对象的函数程序清单
MDB数据库是一个完整的数据库,内部可含有若干个数据表。函数中的参数database指定MDB数据库
文件名,参数sql指定MDB数据表名或SQL语句。
FunctionopenMDBDB
(
database,sql
)
)
SetobjConn=object
(
“tion”
myDSN=“Provider=.410;”
myDSN=myDSN&“DataSource=”&h(database)
DSN
SetobjRS=Object(“set”)
l,objConn,adOpenDynamic,adLockPessimistic
53
EndFunction
314 创建存取带密码的MDB类型的数据库对象的函数程序清单
创建带密码和不带密码的MDB数据库的Recordset对象的方法类似,只是多了一个密码参数,即在与数
据库连接时,必须给出密码信息。函数中的参数database指定MDB数据库文件名,sql指定MDB数据表名或
SQL语句,password指定数据库的密码。
FunctionopenSecuredMDBDB
(
database,sql,password
)
)
SetobjConn=object
(
“tion”
myDSN=“Provider=.410;”
myDSN=myDSN&“DataSource=”&h
(
database
)
myDSN=myDSN&“;JetOLEDB:DatabasePassword=”&password
DSN
)
SetObjRS=Object
(
“set”
l,objConn,adOpenDynamic,adLockPessimistic
EndFunction
315 创建存取DBC类型的数据库对象的函数程序清单
因
Foxpro
生成的
DBC
数据库与
MDB
数据库相似
,
都是一个数据库包含几个数据表的形式
,
故对
DBC
数
据库的存取方法与MDB数据库相似。函数中的参数database指定DBC数据库文件名,sql指定DBC数据表名
或SQL语句。
FunctionopenDBCDB
(
database,sql
)
)
SetobjConn=Object
(
“tion”
myDSN=“Driver={MicrosoftVisualFoxProDriver};”
myDSN=myDSN&“SourceType=DBC;”
myDSN=myDSN&“SourceDB=”&h
(
database
)
DSN
)
SetobjRS=Object
(
“set”
l,objConn,adOpenDynamic,adLockPessimistic
EndFunction
316 创建存取SQLServer类型的数据库对象的函数程序清单
SQLServer属于Server级的数据库,使用时要求比较严格,必须要求输入用户名及密码才能使用。函数
中的参数ServerName指定SQL服务器名,userID指定用户登录名,password指定用户登录密码,database指定
SQLServer数据库名称,sql指定SQLServer数据表或SQL语句。
FunctionopenSQLDB
(
ServerName,userID,password,database,sql
)
)
SetobjConn=Object
(
“tion”
myDSN=“Provider=SQLOLEDB.1;”
myDSN=myDSN&“DataSource=”&ServerName
myDSN=myDSN&“;UserID
(
或UID
)
=”userID
myDSN=myDSN&“;password
(
或PWD
)
=”&password
myDSN=myDSN&“;InitialCatalog
(
或DataBase
)
=”&database
ObjConnopenmyDSN
SetobjRS=Object(“set”)
l,objConn,adOpenDynamic,adLockPessimistic
EndFunction
317 释放存取数据库对象的函数程序清单
由于创建ADO对象与数据库连接需要占用一定的系统资源,因此在对数据库进行存取操作完成后,应
54
及时释放ADO对象本身和释放与数据库连接有关的系统资源。
functionclosedb()
ifisobject
(
conn
)
then
ifnot
(
connisnothing
)
then
’关闭与数据库连接所需的系统资源
setrs
nothing
setconn
nothing
endif
endif
endfunction
把以上符号常量的定义及各个函数放在<%和%>内,以““为文件名进行保存,并在需要的
程序中使用include命令包含进去,就可使用这些函数打开数据库,然后利用ADO的Recordset对象对数据库
进行操作。但经实际使用发现
,DBF
、
DBC
、
Excel
数据库的执行效率没有
MDB
数据库效率高。另外
Excel
数
据库只能读取、增加、修改记录,但不能删除记录;DBF、DBC可以读取、增加、删除、修改记录,但是在
增加记录时,任何一个字段值都不能为空,因此最好尽可能地使用MDB或SQL数据库。
4 应用实例
本文给出一个存取Excel数据表的例子来进一步说明这些函数的用法,其它函数的存取方法与此类似。
假设有一个名为“房租管理.xls”的Excel文件,含有一个名为“房屋租赁”工作表,其字段名如下面的
SQL语句。下面是编写的名为的ASP文件,用它调用openExcelDB函数向“房屋租赁”工作表写
入一条记录。
TheProgrammingRealizationoftheASPAccessesDatabaseinCommonUse
XIAFang-lin,MANing,LIXiao-liang
(erDepartment,TangshanTeacher’sCollege,Tangshan063000,China;
ofKailuanCoalGroup,Kailuan063018,China)
Abstract:ThispaperintroducedthemethodhowtheASPaccessesthevariousdatabasesincommonuse,andgiveanexam2
plethatthefunctionprovidedinthepaperaccessestheExceldatabase.
Keywords:ASP;AccessDatabase;Programming
55
112
发布者:admin,转转请注明出处:http://www.yc00.com/web/1718888267a2753292.html
评论列表(0条)