![](http://www.atcpu.com/themes/extres/ithread/images/1.gif) | 细心的研发人员有时会想到,我们在一个需要读写数据库的页面里包含类似
的代码时,实际上,当你没有进行所有读写数据库操作时,这个数据库连接仍然是打开的,仍然在消耗着服务器的资源。 那么,我们有没有办法让数据库连接仅在需要读取数据库时才打开,不读取时就没有所有动作呢,以下即提供这种思路,以求抛砖引玉。 这种思路即是将数据库连接代码封装在函数里,在需要读取时调用这个函数。 以下是SQL连接代码: Function Open_conn() dim Conn,Strconn set Conn=server.createobject("adodb.connection") Strconn = "Provider = Sqloledb; User ID = 数据库登录帐号; Password = 数据库登录密码; Initial Catalog = 数据库名称; Data Source = (local);" Conn.open Strconn set Open_conn=Conn If Err Then err.Clear Conn.close:set Conn=nothing Response.Write "对不起,数据库连接出错。" Response.End End If End Function 调用方法: 将原来的 rs.open sql,conn 改成 rs.open sql,Open_conn() 以下是ACCESS连接代码: Function Open_conn() dim Dbpath,Conn Dbpath=server.MapPath("数据库路径") set Conn=server.createObject("ADODB.connection") Conn.open "data source=";dbpath;";provider=microsoft.Jet.OLEDB.4.0;" set Open_conn=Conn If Err Then err.Clear Conn.close:set Conn=nothing Response.Write "对不起,数据库连接出错。" Response.End End If End Function 调用方法: 将原来的 rs.open sql,conn 改成 rs.open sql,Open_conn() 顺便提供一个同一服务器上能跨站共享ACCESS数据库的老代码,也许有朋友用得着: 有时,我们有非常多二级,可能需要让这些二级调用某同一个ACCESS数据库,在你不愿意使用SQL数据库的情况下,数据库连接能采用以下办法。(特别提示:如果你的服务器做了FSO安全权限,需要将这个数据库目录设置为,允许你需要调用的各站的IIS用户有权访问修改。) 以下的数据库物理路径类似于 E:\目录\目录\数据库名 dim Conn,Strconn Set Conn = Server.CreateObject("ADODB.Connection") Strconn="Provider = Microsoft.Jet.OLEDB.4.0; " Strconn=Strconn ; "Data Source=数据库物理路径" Conn.Open Strconn If Err Then err.Clear Conn.close:set Conn=nothing Response.Write "对不起,数据库连接出错。" Response.End End If
| |