Accesss数据库链接???我
dbname="driver={Microsoft Access Driver (*。mdb)};DBQ="&Server。MapPath("。。/DATA/ p")
set conn= eateobject(" nnection")
conn。 open dbname
这段就是数据库连接,只是由于写在了 p中,其他asp中可能没有写,所以当你转到其他网页的时候就会提示没有数据库连接
很简单,就把这段提出来,单独新建个文件,比如起名为 p,复制这段代码,保存。
然后在其他的asp页面中,开头都贴上
需要注意的是:为了防止有页面复用导致一个页面中多次打开连接报错,需要将,conn。op...全部
dbname="driver={Microsoft Access Driver (*。mdb)};DBQ="&Server。MapPath("。。/DATA/ p")
set conn= eateobject(" nnection")
conn。
open dbname
这段就是数据库连接,只是由于写在了 p中,其他asp中可能没有写,所以当你转到其他网页的时候就会提示没有数据库连接
很简单,就把这段提出来,单独新建个文件,比如起名为 p,复制这段代码,保存。
然后在其他的asp页面中,开头都贴上
需要注意的是:为了防止有页面复用导致一个页面中多次打开连接报错,需要将,conn。open dbname这段改为:
if ate=0 then
conn。
open dbname
end if
另外,由于你所引用的数据库连接代码在一个asp文件中,需要注意相对路径的问题,如果asp页面存储在好几个目录,或者多层目录,就不能简单的复制这句话,这代表,你所引用的这个 p页面和需要引用的asp页面在同一级目录里,如果不在同一级就需要改变file=""里的路径,比如说,如果某个页面在相对于 p那个目录的一级子目录里,就要改为。
。/ p
另外他用了个小技巧, p其实就是数据库,只不过改了后缀,如果你改回。mdb可以用access打开的
刚才提到页面复用,简单解释一下,比如说,你有一个 p,里面引用了一个 p,同时还有 p等多个页面,他们都是要读取数据库的。
在 p中需要连接数据库,因此导入了一个 p,这样在这个页面中所有的ASP页面都已经连接了数据库。
但是说过,你每个asp文件里都会有句连接数据库引用的代码,因此 p这个文件会在一个 p页面里引用多次,即该页面复用了。
这样就意味当编译器(asp是解释型语言,就是一行一行执行的)执行到 p这里时又要连一次,执行到 p时又要连接一次数据库。但是,这里是行不通的,因为同一个conn对象(数据库连接对象)是不能在没有关闭的情况下再次打开的,因此这里会报错。
所以通常在会遇到页面复用的情况下,对数据库连接会加上状态判断,即,如果数据库已经连接,则不执行连接过程,否则就连接(也就是我上面要你改的那段)。收起