ASP里链接数据库出错的经验分享

作者: 2011/6/11 11:45:03

本文分享的是一个作者的小经验之谈,关于ASP里链接数据库出错的经验分享,希望能帮助到大家。

首先申明,我不是什么高手,只是结合自己的那点微不足道的经验,以及一直有人在QQ上问我,很多相关数据库操作的问题,大多总接下来,其实和很多ASP程序员自己对数据库相关知识的领会多少有关系,刚好今天在CSDN上看到有人在讨论这样的问题,我觉得有必要理清楚很多自己或他人不清楚的内容。 

  对与数据库操作的理解,看看下面的内容,也许会更清楚一些! 

  1) 用SET建立连接对象 (这里是建立程序和数据库操作通道, 

set cnobj = Server.CreateObject("ADODB.Connection") 

  2)给出数据库驱动的生产厂商和版本号以及你的ACCESS数据库所在的位置 

strcon="provider=microsoft.jet.oledb.4.0;data source="&Server.MapPath("/wang/data/bbs.mdb") 

  记住:strcon是字符串变量你可以随便给,server.mappath是取数据库的磁盘路径,后面所跟的一定是站点路经。 

  本句也可以写成: 

strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="&Server.MapPath("("/wang/data/bbs.mdb")") 

  3)用链接对象的OPEN方法打开数据库 

cnobj.Open strcon 

  到此连接完成,后面就是建立记录集对象了,如: 

set rstobj=server.createobject("adodb.recordset") '此句用SET语句建立记录集对象RSTOBJ 
set rstobj=cnobj.execute("select * from users") '此句利用cnobj对象的execute方法执行SELECT查询语句,users是库中的表名称

  带密码的连接: 

Conn1.Open "Provider=Microsoft.JET.OLEDB.3.51;" & _ 
"Data Source=G:\ComponentSource\DBFiles\CSMain\CSMain.mdb;" & 
"Jet OLEDB database Password=outlook" 

  问题现象比较多的一类就是: 

  以前一切正常的程序,现在运行的时候提示如下信息: 

Microsoft VBScript 编译器错误 错误 '800a03f6' 缺少 'End' 

/iisHelp/common/500-100.asp,行242 

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' 

[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x570 Thread 0x738 DBC 0x242e404 Jet'。 

/bbs/index.asp,行7 

  为什么?我也说不清楚,但是我的经验就是这样,因为Windows2000 SP2以后的新bug造成的。也许微软不喜欢ODBC了,所以出此下策。正确的方法是使用OLEDB来连接Access。连接字符串为:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名 

  我不知道我这样理解对不对,OLEDB比ODBC更直接面向数据库,这样打个比方,如果你希望到电影院去看电影,从家里出门,有两路车可以到电影院,两路车为100路和10路,100路车需要在某站下车然后换10路在走一个站可以到电影院,10路当然可以直接到电影院,可能都成习惯了,搭公车喜欢做100路车,呵!虽然我也知道10路可以直达目的地。这里非常罗嗦,也有些不符合一般常人的逻辑(大款除外),问题是我要说的ODBC和OLEDB就相单于100路和10路。而电影院就是我们要操作的数据库。那我们为什么不使用OLEDB呢?不怕见笑。我现在想的就是这样。这个问题实在太普遍了!所以说得这么多! 

<% 
dim DB 
DB="数据库名" '定义数据库路径及名称 
Set conn = Server.CreateObject("ADODB.Connection") 
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DB) 
%> 

  解接问题必须注意使用上面的连接方式! 还有很多,今天先说这些,如果我的理解有不正确的地方,希望高手牛人指正!

特别推荐

玩家留言 跟帖评论
查看更多评论