ADODB , ADODB_lite

转载 2006年06月13日 17:45:00
ADODB是一套功能强大的数据库抽象类,可以支持很多种数据库,功能很多。但由于它太过于庞大,网上很多人感觉它比较慢,而这时就产生了简化版的ADODB,也就是 ADODB_lite ,但ADODB_lite 与ADODB事实上没有任何关系,它不是把ADODB删除一些代码而直接得到的,它们是独立的两个工程,只是ADODB_lite使用了一个简化的ADODB接口。网上的测试人员认为,ADODB_lite只需要ADODB 1/6的内存,而且工作速度比 ADODB 快很多。
以ADODB_lite 官方资料说:基于 ADODB的网站几乎可以不用修改,直接用于 ADODB_lite 。但事实却不是这样幸运。因为ADODB_lite 只有部分 ADODB的功能。如果你用了ADODB中的那些“高级”功能,那你就不得不改你的代码了。

以下列出主要的 ADODB中有,而 ADODB_lite 中没有的函数


UserDate       
UserTimeStamp  
UnixDate
UnixTimeStamp
PageExecute    
CacheExecute
CachePageExecute
GetUpdateSQL
GetInsertSQL

简要说明一下如果改写
UserDate
 摘要:这个功能是回一个格化式的日期字符串,默认为 "Y-m-d"
 ADODB中是这样用
 $db->UserDate($rs->fields['theDate'],$fmtstr);
 
 ADODB_lite 中
 date($fmtstr,strtotime($rs->fields['theDate']));

 例子:
  date('Y-m-d H:i:s',strtotime($rs->fields['theDate']));

 说明:$fmtstr 为日期格式化字符串。lite版中必须需用strtotime.

UserTimestamp
  摘要:这个函数返回一个长时间。如:2005-09-10 08:38:23 这个比较简单。(注:ADODB的这个功能是在 ADORecordSet 上的,让人有点难于理解)
  ADODB
    $rs->UserTimestamp($rs->fields['thetime']);
  
  ADODB_lite
    date('Y-m-d H:i:s',strtotime($rs->fields['thetime']));
  
  说明:这 UserDate 与 UserTimestamp 的处理方法实际上其实是一样的。

PageExecute
  摘要:这个方法相当常用。分页查询功能,指定一个每页多少个记录,指定返回第几页。page 是以1 为开始的。

  ADODB
    $rs = $db->PageExecute($sql , PAGE_SIZE, $page);

  ADODB_lite 的替代方法:
    $rs = $db->SelectLimit($sql ,PAGE_SIZE, ($page -1) * PAGE_SIZE);
  
  说明:ADODB_lite中用 SelectLimit 来替代 PageExecute 。其实这两种方法的差别不大。改动的地方也不多。

GetInsertSQL
  摘要:用数组的方式来指定需要插入的字段与值,再于数库表对应的RecordSet一起得到"insert into" SQL. 再用 ADOConnection.Execute($sql);执行插入语句

  ADODB
    $rs = $db->Execute("select * from users where userid = 0 ");
    $record = array();
    $record['userid'] = 1;
    $record['username'] = 'user_name';
    $sql = $db->GetInertSQL($rs,$record);
    $db->Execute($sql);

  ADODB_lite 替代方法
    没有什么好的替代方法,只有自己构建出 insert sql ,再执行了。
    $sql ="insert into users (userid,username) values(1,'user_name')";
    $db->Execute($sql);
  
  说明:GetInsertSQL相当方便,特别是在插入一个大表的情况下。但ADODB_lite中没有。只能自己构建。


GetUpdateSQL
  摘要:对 GetInsertSQL 差不多。只是这个得到的是 Update SQL .

  ADODB
    $rs= $db->Execute("select * form users where userid = $userid");
    if ($rs->EOF) {
        die("没有这个用户的资料,错误!");
    }
    $record = array();
    $record['passwd'] = md5($pass1);
    $sql = $db->GetUpdateSQL($rs,$record);
    $db->Execute($sql);

 ADODB_lite 替代方法
   也只有自己构建sql
   $pass1 = md5($pass1);
   $sql = "update users set passwd= $pass1 where userid = $userid";
   $db->Execute($sql);

 说明:GetUpdateSQL相当方便,特别是在更新一个大表的情况下。但ADODB_lite中没有。只能自己构建。


总的来说,也就这些了。看来 ADODB_lite 牺牲了ADODB的部分功能要提高了速度的。至于要用 ADODB 还是 ADODB_lite 还是看情况了。

相关文章推荐

adodb lite 1.42最新版

  • 2008年04月07日 12:47
  • 461KB
  • 下载

全局程序集缓存(GAC)中 安装程序集 ADODB 版本

错误:无法安装或运行此应用程序。该应用程序要求首先在“全局程序集缓存(GAC)”中安装程序集 ADODB 版本7.0.3300.0 出现这一类似的错误,在VS项目中做如下操作: 右键工程-》属性-...

php使用adodb类库操作数据库-类的封装

adodb5下载地址 下载好的adodb文件夹放在程序根目录下。 conn下的found.database.php文件 ...

VB.net 中 ADODB的RecordSet 的使用实例说明

首先需要引用: ado VB ADODB中的RecordSet.Open打开记录的两个参数adOpenKeyset、adLockBatchOptimistic的详细说明: 这两个参数当时弄明...

ADODB是如何完成符号转义的

今天在研究PHP+MYSQL的 SQL注入攻击, 发现许多攻击 都是从 单引号(')开始的, 即:如果php.ini中 magic_quotes_gpc = off ,  输入内容中有 单引号(') ...

IIS7.0配置ASP网站出现 :ADODB.Connection 错误 '800a0e7a'

问题: IIS7.0配置ASP网站出现下面错误: ADODB.Connection错误 '800a0e7a' 未找到提供程序。该程序可能未正确安装。 /asp/mssql/Conn.asp,行...

adodb

不管后端数据库如何,存取数据库的方式都是一致的,开发设计人员不必为了某一套数据库,而必须再学习另一套不同的存取方法,这大大减轻开发人员的知识负担,过去的知识往后仍可继续使用。 ADODB 是 A...

PHP的adodb类库

  • 2017年08月10日 22:42
  • 547KB
  • 下载

adodb+base+php-5.3.rar

  • 2014年07月21日 23:19
  • 14.64MB
  • 下载

VBS之adodb.stream对象的方法/属性

adodb.stream对象的方法/属性 Cancel 方法 使用方法如下 Object.Cancel 说明:取消执行挂起的异步 Execute 或 Open 方法的调用。 C...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: ADODB , ADODB_lite
举报原因:
原因补充:

(最多只允许输入30个字)