|
主题: 请教一个连接文件的解释!
|
liangzn28
职务:普通成员
等级:1
金币:0.0
发贴:60
|
#12006/6/23 9:35:40
class DBAccess Dim strDB,StrCn,cn Private sub Class_Initialize call ConnDB("",false) end sub
public function ConnDB(dbName,bNewCn) Dim tmpcn if dbName="" then dbName="/data/public.mdb" if strDB<>dbName then strDB=dbName StrCn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("..") & strDb end if if not Isempty(tmpcn) then if tmpcn.state>0 then tmpcn.close() end if set tmpcn=nothing end if if bNewCn then if not Isempty(ConnDB) then if ConnDB.state>0 then ConnDB.close() end if set ConnDB=nothing end if set ConnDB = new DBAccess set ConnDB.cn = Server.CreateObject("Adobc.connection") set tmpcn=ConnDB.cn else if not Isempty(ConnDB) then if ConnDB.state>0 then ConnDB.close() end if set ConnDB=nothing end if if not Isempty(cn) then if cn.state>0 then cn.close() end if set cn=nothing end if if Isempty(cn) then set cn=server.CreateObject("Adodb.connection") set tmpcn=cn end if end if end if if tmpcn.state=0 then tmpcn.open strCn end if end function end class
呵呵,上面的代码是一个数据库连接文件的,也就是供很多文件调用包含的,可能长了点.我看了好几天也不怎么明白这段代码,特别是state的用法和含义,请各位大哥指教指教好吗?
编辑历史:[此帖最近一次被 liangzn28 编辑过(编辑时间:2006-06-23 10:56:15)]
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#22006/6/23 10:32:51
if then写在同一行,就不需要end if.否则then的内容另外起行 结构错误
|
liangzn28
职务:普通成员
等级:1
金币:0.0
发贴:60
|
#32006/6/23 10:58:38
呵呵,if 的问题也就解决,我也就编辑过帖子,麻烦再帮我看看! (这个论坛的编辑起很不好用,如果直接粘贴过来就会有一些符号会变成表情的,设置了禁止表情转换,确变成了上面的格式,哎,真难搞!!!)
|
蓝飞科技
职务:普通成员
等级:1
金币:0.0
发贴:23
|
#42006/7/2 23:18:35
state属性表示连接的打开状态,为了锁定或者特殊需要,所以就那一些打开的连接先关闭、置空 f cn.state>0 then 'cn.state>0表示打开状态为true状态,其实这样写不规范 cn.close() set cn-nothing end if
|
三仙半
职务:普通成员
等级:1
金币:0.0
发贴:241
|
#52006/7/4 18:10:16
你的这个文件是别人封装好的连接数据库的类,你只要理解这样几个问题就行了: 1、如何与数据库连接:用的是ADO的connection对象,格式如下 dim conn '定义一个变量 set conn = server.CreateObject("ADODB.connection") conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("database/test.mdb") '把它与一个对象实例连接 conn.open '打开这个数据库 2、如何得到数据:用的是ADO的recordSet对象,格式如下 dim objRS,strSQL set objRS = server.createObject("ADODB.recordSet") strSQL = "select * from tabName" '这里根据你的查询需要书写 objRS.open strSQL,conn,1,3,1 'conn是你已经建立的一个数据库连接 'recorderSet对象的open方法的格式以及各个参数的意义如下: 'objRS.open [Source][,ActiveConnection][,CursorType][,LockType][,Option] 'Source-----一个字符串;可能是Command对象、SQL字符串或数据库中的表名。 'Option-----取值范围为1,2,4,8;分别指定系统对Source参数的理解,对应关系不详。 ' ?1=SQL字符串;2=数据库中的表名;4=Command对象; 'ActiveConnection-----一个Connection对象。 'CursorType-----光标的移动方式:0=只能向前;1=自由移动,之前读取的recorderSet对象看不到本对象对数据的更新 ' 但看不到对象对数据的增加和删除;2=自由移动,之前读取的recorderSet对象可以看到本对象对数据 ' 的任何操作(Acesss数据库不支持);3=自由移动,但数据是被下载到客户端浏览,其他对象对数据 ' 的任何操作本对象均看不到。 'LockType------多个客户对同一笔数据进行访问时的处理方式。0=只读方式;1=悲观锁定(开始编辑即锁定),其它对象 ' 只能只读打开;2=乐观锁定(调用Updata时才锁定),可能数据不同步;3=批量乐观锁定(调用Updata时 ' 才锁定),允许批量更新记录,数据不同步可能更严重。
3、关闭对象的方法: objRS.close '关闭对象 set objRS = noThing '取消变量与对象的连接 conn.close '关闭对象 set conn = noThing '取消变量与对象的连接
闭起眼睛看人生
|
三仙半
职务:普通成员
等级:1
金币:0.0
发贴:241
|
#62006/7/4 18:15:23
关于ASP与不同类型数据库连接时的连接字符串: access:"Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;" Oracle:"Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;" MS SQL Server:"Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;" MS text: "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties'text;FMT=Delimited'" 示例:与ACCESS数据库连接 dim conn set conn = server.createobject("adodb.connection") conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("../db/bbs.mdb")
闭起眼睛看人生
|