如何不使用ADO和BDE读取ACCESS的数据?
现在因为情况特殊,不得不如此。
用DBEXPRESS可有什么好的办法?

解决方案 »

  1.   

    DBX根本不屑支持这里的桌面数据库。为啥不用ADO何BDE?
      

  2.   

    现在访问数据库在Delphi中好像只有这么三种吧,就是ADOExpress、BDE和dbExpress,其中BDE据了解可能会被淘汰,而dbExpress又不成熟,现在还有BUG存在,所以当然是选用ADO访问了,而且李维也在推荐用ADO访问数据库,你又为何不用呢?我现在开发MIDAS也在用ADO啊,而且据了解效率是比BDE高的。
      

  3.   

    我曾经见过有人用CREATECOMOBJECT的方法访问过数据库。
    并且当时我也照着试成了。只是后来怎么都找不到那段代码了。
    现在我的情况十分特殊,所以不能用ADO。
      

  4.   

    拼凑一段代码,既不知道如何get fieldCount,也不知道复杂数据类型该如何处理;
    (拜托加一句{$apptype console},因为要writeln偷懒;)
    procedure TForm1.Button1Click(Sender: TObject);
    var
      DAO, db, recordSet: OleVariant;
      i: integer;
    begin
      try
        DAO := CreateOleObject('DAO.DBEngine.36');
        db := DAO.OpenDatabase('c:\database\zjus.mdb');
        //recordSet := db.OpenRecordset('zju');
        recordSet := db.OpenRecordset('select top 50 * from zju');
        {
          DAO.DbEngine.35: too old?
          DAO.DbEngine.36 (Jet 4.0) works (with Access2000);
          zjus.mdb is my database, and zju is the table name;
        }
        while (not(recordSet.EOF)) do
        begin
          for i := 0 to 3 do
            Write(recordSet.Fields[i].value+#9);
          writeln;
          recordSet.MoveNext;
        end;
      finally
        DAO := UnAssigned;;
        db := UnAssigned;;
        recordSet := UnAssigned;;
      end;
    end;p.s.连ADO都不准用,why?难不成不在windows下面混了?
      

  5.   

    p.s. 我现在连数字都转换不过来;
    代码是从MSDN里面抄的VB.
      

  6.   

    建议楼主自己写几个控件,最好能建立新的存取访问模式
    为什么不能用BDE和ADO???
      

  7.   

    可以使用AccessApplication来访问。缺点:必须安装Access
    例如:
    Use ComObj, {Access2000,}
    var
      AA: OleVariant;    try
          //创建Access Application对象,并打开Access临时数据库
          AA:=CreateOleObject('Access.Application');
          AA.OpenCurrentDatabase(sTempPath,false);
          //进行Access表和Text文件的转换
          //参数含义:1.传输类型(导入、导出等),2.带有分隔符,3.数据源,
          //4.目标路径及文件名,5.字段名是否保存在文本第一行,其他参数省略
          AA.DoCmd.TransferText(acExportDelim,'',sTableName,sPathNameStr,true,'',0);
          AA.CloseCurrentDatabase;
        except
          WARNING('转换过程中发生错误!');
        end;
      

  8.   

    如果访问ACCESS的话,当然是DAO了,访问ACCESS的专用引擎。
    这样的第三方控件很多.
      

  9.   

    既不用ADO,也不用BDE,那就只有dbExpress了,可以参考李维的《高效数据库设计》