yakczh 发表于 2008-5-14 08:41:59

ci支持access数据库吗?

ci支持access数据库吗?
$dsn="   Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xxx.mdb;Persist Security Info=False";
象这种的

[ 本帖最后由 yakczh 于 2008-5-14 08:44 编辑 ]

Hex 发表于 2008-5-14 08:56:59

不直接支持,需要 ODBC。

kkito 发表于 2008-5-14 10:35:28

我折腾了一下
大体上可以用
楼主需要跟我联系
本人网站就是ci+access
图便宜买不起支持mysql的

kkito 发表于 2008-5-21 09:10:47

基本上我是全部copy database/drivers下的odbc到access
但稍微做了一点改变access_driver.php中
配置了链接,不过是hard code进去的
晚上回家把整个database文件传上来,需要的对比下源码,具体改了啥忘记了
反正当时debug了整整两天才搞定

class CI_DB_access_driver extends CI_DB {

      /**
         * The syntax to count rows is slightly different across different
         * database engines, so this string appears in each driver and is
         * used for the count_all() and count_all_results() functions.
         */
      var $_count_string = "SELECT COUNT(*) AS ";
      var $_random_keyword;
      
      var $_insert_id;


      function CI_DB_access_driver()
      {
                //FIXME 不知道access随机数
                $this->_random_keyword = ' RND('.time().')'; // database specific random keyword
      }

      /**
         * Non-persistent database connection
         *
         * @access      private called by the base class
         * @return      resource
         */      
      function db_connect()
      {
                $mdbPath = "php.mdb";
                $dao = new COM("ADODB.Connection");
                $dsn="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=".realpath($mdbPath);
                $dao->open($dsn);
                #echo "<br >------ accesssaccessaccess dao created -----<br>";
                #$rs = new COM("ADODB.RecordSet");
                #$rs->Open("select * from name",$dao,1,1);
                #while(! $rs->eof) {
                #$f = $rs->Fields("name");
                #$f = $rs->Fields(0);
                #echo $f->value.'<br>';   
                #$rs->MoveNext();
                #}
                #echo $dao;
                return $dao;
                #return @access_connect($this->hostname, $this->username, $this->password);
      }
      
      // --------------------------------------------------------------------

      /**
         * Persistent database connection
         *
         * @access      private called by the base class
         * @return      resource
         */      
      function db_pconnect()
      {
                return db_connect();
                #return @access_pconnect($this->hostname, $this->username, $this->password);
      }
//omit....
}

kkito 发表于 2008-5-21 19:54:44

access dirver for ci

改了一些代码,很多都是hard code进去的

szlinz 发表于 2008-5-22 07:41:31

好,支持,最好也能出个Kohana的,我需要。

bigbenz8 发表于 2008-9-19 10:51:59

小试了一下,不支持查询的 ,没有返回结果。楼主搞定之后再回一声。:( :L :Q
页: [1]
查看完整版本: ci支持access数据库吗?