2007年7月25日 Database开发小记(昨天)
来源:互联网 发布:淘宝如何查拍a发b 编辑:程序博客网 时间:2024/05/16 10:59
asp在很多时候,是在和数据库中的信息进行交互操作,而对于数据库的操作也相对较为频烦,为了避免重复劳动,所以,我把一部分数据库操作的方法都集中在一起,写成了一个静态类!在使用时直接调用即可
Databse主要分为
1.Configuration:Databse操作的部分配置信息
2.Connection:包含了一部分数据库连接操作,返正一个对应数据库的Connection对象
参数Database.Configuration.CURRENT_DATABASE决定了当前选择那一个数据库连接
3.Statement:这是一个需要New的对象,他只进行一样操作,那就是执行SQL,目前只写了两个方法Execute和ExecuteQuery,两者之间的区别就是Execute使用了事务处理方式,且无返回记录集,适用于insert,update,delete操作,而ExecuteQuery则在执行后会返回一个记录集,适用于Select操作。目前暂时这样设定了,以前有什么需求再加进去了
在这里使用了Class.create();借鉴了modello.js中的JSOO实现方式
<%
/**//*
************************************************************************
文 件: /Function/Database.asp
作 者: hnyashiro
时 间: 2007年7月24日
类说明:实现ASP与ADO之间的接口,将部分数据操作进行封装,简化用户操作
包括:数据库连接对象Connection[可以直接使用其方法,无需声明实例]
数据库连接配置Configuration[请直接调用]
数据库操作对象Statement[需要声明其对象的实例后调用]
***********************************************************************
*/
var Database = ...{
Configuration:...{
AccessDBPath:"/Data/db.mdb",
SRV_IPAdd:"127.0.0.1",
SRV_UName:"username",
SRV_UPass:"userpass",
SRV_DBName:"databasename",
CURRENT_DATABASE:1
}
,
Connection:...{
getAccess:function()...{
try...{
var Conn = Server.CreateObject("ADODB.Connection");
var strConn = "DBQ="+Server.MapPath(Database.Configuration.AccessDBPath)+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};";
Conn.open(strConn);
return Conn;
}catch(JSException)...{
JSException.description = "Database.Connection.getAccess:连接Access数据库时错误!--"+JSException.description
throw JSException;
}
}
,
getSQLServer:function()...{
try...{
var Conn = Server.CreateObject("ADODB.Connection");
var strConn = "driver={SQL Server};server="+Database.Configuration.SRV_IPAdd+";db="+Database.Configuration.SRV_DBName+";uid="+Database.Configuration.SRV_UName+";pwd="+Database.Configuration.SRV_UPass;
Conn.Open(strConn);
return Conn;
}catch(JSException)...{
JSException.description = "Database.Connection.getSQLServer:连接SQLServer数据库时错误!--"+JSException.description
throw JSException;
}
}
,
getMySQL:function()...{
return "MySQL Connection String!"
},
getOracle:function()...{
return "Oracle Connection String!"
},
getSybase:function()...{
return "Sybase Connection String!"
},
getDatabaseConnection:function()...{
switch(Database.Configuration.CURRENT_DATABASE)...{
case 0:
return Database.Connection.getAccess();
break;
case 1:
return Database.Connection.getSQLServer();
break;
case 2:
return Database.Connection.getMySQL();
break;
case 3:
return Database.Connection.getOracle();
break;
case 4:
return Database.Connection.getSybase();
}
}
}
}
Database.Statement = Class.create();
Database.Statement.construct=function()...{
this.ADORSCLSID = "ADODB.Recordset";
this.Initialize=function()...{};
this.Execute=function(strSQL)...{
try...{
if(typeof strSQL!='string')...{
throw new Error("(Database.Statement)Instance.Execute SQL语句必须为字符串");
}
var Conn = Database.Connection.getDatabaseConnection();
Conn.BeginTrans;
Conn.Execute(sSQL);
Conn.CommitTrans;
return true;
}catch(DBException)...{
Conn.RollBackTrans;
DBException.source = "";
DBException.description = "(Database.Statement)Instance.Execute发生错误!--"+DBException.description;
throw DBException;
}
return false;
}
this.ExecuteQuery=function(strSQL,intCursorType,intLockType)...{
try...{
if(typeof strSQL!='string')...{
throw new Error("(Database.Statement)Instance.ExecuteQuery发生错误!");
}
var rs = Server.CreateObject(this.ADORSCLSID);
rs.CursorType = intCursorType || 3;
rs.LockType = intLockType || 3;
var Conn = Database.Connection.getDatabaseConnection();
rs = Conn.Execute(strSQL);
if(rs.EOF && rs.BOF)...{
return null;
}
return rs;
}catch(e)...{
e.description = "(Database.Statement)Instance.ExecuteQuery发生错误!--"+e.description;
throw e;
}
}
}
%>
/**//*
************************************************************************
文 件: /Function/Database.asp
作 者: hnyashiro
时 间: 2007年7月24日
类说明:实现ASP与ADO之间的接口,将部分数据操作进行封装,简化用户操作
包括:数据库连接对象Connection[可以直接使用其方法,无需声明实例]
数据库连接配置Configuration[请直接调用]
数据库操作对象Statement[需要声明其对象的实例后调用]
***********************************************************************
*/
var Database = ...{
Configuration:...{
AccessDBPath:"/Data/db.mdb",
SRV_IPAdd:"127.0.0.1",
SRV_UName:"username",
SRV_UPass:"userpass",
SRV_DBName:"databasename",
CURRENT_DATABASE:1
}
,
Connection:...{
getAccess:function()...{
try...{
var Conn = Server.CreateObject("ADODB.Connection");
var strConn = "DBQ="+Server.MapPath(Database.Configuration.AccessDBPath)+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};";
Conn.open(strConn);
return Conn;
}catch(JSException)...{
JSException.description = "Database.Connection.getAccess:连接Access数据库时错误!--"+JSException.description
throw JSException;
}
}
,
getSQLServer:function()...{
try...{
var Conn = Server.CreateObject("ADODB.Connection");
var strConn = "driver={SQL Server};server="+Database.Configuration.SRV_IPAdd+";db="+Database.Configuration.SRV_DBName+";uid="+Database.Configuration.SRV_UName+";pwd="+Database.Configuration.SRV_UPass;
Conn.Open(strConn);
return Conn;
}catch(JSException)...{
JSException.description = "Database.Connection.getSQLServer:连接SQLServer数据库时错误!--"+JSException.description
throw JSException;
}
}
,
getMySQL:function()...{
return "MySQL Connection String!"
},
getOracle:function()...{
return "Oracle Connection String!"
},
getSybase:function()...{
return "Sybase Connection String!"
},
getDatabaseConnection:function()...{
switch(Database.Configuration.CURRENT_DATABASE)...{
case 0:
return Database.Connection.getAccess();
break;
case 1:
return Database.Connection.getSQLServer();
break;
case 2:
return Database.Connection.getMySQL();
break;
case 3:
return Database.Connection.getOracle();
break;
case 4:
return Database.Connection.getSybase();
}
}
}
}
Database.Statement = Class.create();
Database.Statement.construct=function()...{
this.ADORSCLSID = "ADODB.Recordset";
this.Initialize=function()...{};
this.Execute=function(strSQL)...{
try...{
if(typeof strSQL!='string')...{
throw new Error("(Database.Statement)Instance.Execute SQL语句必须为字符串");
}
var Conn = Database.Connection.getDatabaseConnection();
Conn.BeginTrans;
Conn.Execute(sSQL);
Conn.CommitTrans;
return true;
}catch(DBException)...{
Conn.RollBackTrans;
DBException.source = "";
DBException.description = "(Database.Statement)Instance.Execute发生错误!--"+DBException.description;
throw DBException;
}
return false;
}
this.ExecuteQuery=function(strSQL,intCursorType,intLockType)...{
try...{
if(typeof strSQL!='string')...{
throw new Error("(Database.Statement)Instance.ExecuteQuery发生错误!");
}
var rs = Server.CreateObject(this.ADORSCLSID);
rs.CursorType = intCursorType || 3;
rs.LockType = intLockType || 3;
var Conn = Database.Connection.getDatabaseConnection();
rs = Conn.Execute(strSQL);
if(rs.EOF && rs.BOF)...{
return null;
}
return rs;
}catch(e)...{
e.description = "(Database.Statement)Instance.ExecuteQuery发生错误!--"+e.description;
throw e;
}
}
}
%>
- 2007年7月25日 Database开发小记(昨天)
- 2007年7月26日,Database.DBFactory
- 2007年04月27日心情小记
- 2007年10月13日调试路由器小记
- 2009年3月19日小记
- 2009年3月20日小记
- 2015年11月5日小记
- 2016年10月27日小记
- 9月25日讨论小记,构建开发的开发平台
- 2007年7月25日!开始....
- 3月17日,接着昨天的
- 昨天是5月11日
- 2007年7月25日 Logger开发(其实是前天的)
- 2010年3月3日——夜班小记
- 2014年3月5日 小记
- 2016年11月5日博客开通小记
- 2017年2月3日 工作沟通小记
- 2017年11月30日 15:20:35 小记
- 看过的IBM网站
- SQL Server2000 各个版本之间的区别
- 寂静的时代即将来临
- C# 连接数据库……sqlserver
- 意外操作暴露Python的缺陷
- 2007年7月25日 Database开发小记(昨天)
- 从面试题看知识点
- 上期所1.7亿巨资上交易系统 是未雨绸缪还是超前投资
- BCB体验
- const几点用法
- 改善sql loader的性能
- 计算机英语天天学(07-07-24)
- 使用ISA2006发布安全的Sharepoint站点疑难问题解答之连接地址转换
- test