在ASP中连接数据库(连接字符串)

一、存取数据库的原理

在asp中,用来存取数据库的对象统称ado对象(active data objects),主要含有三种对象:connection、recordset和command,其中connection负责打开或连接数据库, recordset负责存取数据表,command负责对数据库执行行动查询(action query)命令和执行sql server的stored procedure。只依靠这三个对象还是无法存取数据库的,还必须具有数据库存取的驱动程序:ole db驱动程序和odbc驱动程序。对于任何一种数据库都必须有相对应的ole db驱动程序和odbc驱动程序,ado对象才能对数据库进行存取。

ado对象必须与各种驱动程序相结合才能存取各种类型数据库,不同的数据库需要不同的驱动程序。在windows 9x/nt的“开始”→“设置”→“控制面板” →“odbc data source(32bit)”中的“驱动程序”标签页,可以查证机器上究竟装了哪些驱动程序。

二、连接数据库和打开数据表

不同数据库的连接方法有所不同(即建立connection实例的方法不一样),但建立connection实例后,利用recordset对象进行存取数据的方法却大同小异。下面对于不同的数据类型,编写了相对应的连接函数,在程序中直接引用即可。

程序用vb script脚本语言编写。

1.建立mdbrecordset对象。mdb数据库是一个完整的数据库,内部可能含有若干个数据表,在此函数中,connection的作用是连接数据库,recordset的作用是打开数据表。

function createmdbrecordset(数据库文件名, 数据表名或select语句 )
  dim conn,provider,dbpath
  ’建立connection 对象
  set conn = server.createobject(“adodb.connection”)
  provider=“provider=microsoft.jet.oledb.4.0;”
  dbpath = “data source=” & server.mappath(“数据库文件名”)
  ’打开数据库
  conn.open provider & dbpath
  set createmdbrecordset = server.createobject(“adodb.recordset”)
  ’打开数据表
  createmdbrecordset.open “数据表名”, conn, 2, 2
end function

2.建立带密码的mdb数据库的recordset对象。它的建立方式与建立不带密码的mdb数据库的recordset对象类似,只是多了一个密码参数,即在与数据库连接时,必须给出密码信息。

function createsecuredmdbrecordset( 数据库文件名, 数据表名或select语句,password )
 dim conn,provider,dbpath
 ’建立connection 对象
 set conn = server.createobject(“adodb.connection”)
 provider = “provider=microsof.jet.oledb.4.0;”
 dbpath = “data source=”& server.mappath(“数据库文件名”)
 ’连接数据库,注意要带有密码参数
 conn.open provider & dbpath&“jet oledb:database password=”&assword
 set createsecuredmdbrecordset = server.
 createobject(“adodb.recordset”)
 ’打开数据表
 createsecuredmdbrecordset.open “数据表名”, conn, 2, 2
end function

3.dbf文件不是一个标准的数据库文件,只相当于标准数据库文件中的一个数据表,所以为了使用dbf文件,可以把所有的dbf文件放在一个目录 下,这样把目录名看成标准数据库,每一个dbf文件相当于标准数据库中的数据表。下面函数中的directory是dbf所在的目录名。

function createdbfrecordset( 目录名, dbf文件名或select语句 )
 dim conn,driver,sourcetype,dbpath
 ’建立connection 对象
 set conn = server.createobject(“adodb.connection”)
 driver=“driver={microsoft visual foxprodriver};” sourcetype = “sourcetype=dbf;”
 dbpath=“sourcedb=” & server.mappath(“目录名”)
 ’调用open 方法打开数据库
 conn.open driver & sourcetype & dbpath
 set createdbfrecordset = server.createobject(“adodb.recordset”)
 ’打开dbf文件
 createdbfrecordset.open “dbf文件名或select语句”, conn, 2, 2
end function

4.由foxpro生成的dbc数据库与mdb数据库相似,都是一个数据库包含几个数据表的形式,所以对dbc数据库的存取方法与mdb数据库相似。

function createdbcrecordset( dbc数据库文件名, 数据表名或select语句 )
 dim conn,driver,sourcetype,dbpath
 ’建立connection 对象
 set conn = server.createobject(“adodb.connection”)
 driver=“driver={microsoft visual foxpro driver};”
 sourcetype = “sourcetype=dbc;”
 dbpath = “sourcedb=” & server.mappath(“dbc数据库文件名”)
 ’连接数据库
 conn.open driver & sourcetype & dbpath
 set createdbcrecordset = server.createobject(“adodb.recordset”)
 ’打开数据表
 createdbcrecordset.open“数据表名或select语句”, conn, 2, 2
end function

5.将excel生成的xls文件(book)看成一个数据库,其中的每一个工作表(sheet)看成一个数据库表。

function createexcelrecordset(xls文件名,sheet名)
 dim conn.driver,dbpath
 ’建立connection对象
 set conn = server.createobject(“adodb.connection”)
 driver=“driver={microsoft excel driver (*.xls)};”
 dbpath = “dbq=” & server.mappath(“xls文件名”)
 ’调用open 方法打开数据库
 conn.open driver & dbpath
 set createexcelrecordset = server.createobject(“adodb.recordset”)
 ’打开sheet
 createexcelrecordset.open “select * from [”&sheet&“$]”, conn, 2, 2
end function

6.sql server属于server级的数据库,使用时要求比较严格,必须要输入用户名及密码才能使用。

function createsqlserverrecordset(计算机名称,用户id, 用户密码,数据库名称 数据表或查看表或select指令 )
 dim params, conn
 set creatsqlserverconnection = nothing
 set conn = server.createobject (“adodb.connection”)
 params = “provider=sqloledb.1”
 params = params & “;data source=” & computer
 params = params & “;user id=” & userid
 params = params & “;password=” & password
 params = params & “.initial catalog=”&数据库名称
 conn open paras
 set createsqlserverrecordset = server. createobject(“adodb.recordset")
 createsqlserverrecordset.open source, conn, 2, 2
end function  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jxcjxinxing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值