ASP里对于链接数据库出错的一点经验总结

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

首先申明,我不是什么高手,只是结合自己的那点微不足道的经验,以及一直有人在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)

%>

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航