问题:请问如何使用Delphi打开.AIS的数据库文件,急!! ( 积分:200, 回复:3, 阅读:68 )
分类:数据库-文件型 ( 版主:hbezwwl, 吴剑明 )  
来自:harrylifeng, 时间:2002-2-4 10:32:00, ID:905232 [显示:小字体 | 大字体]  
只能使用ADO的方式。
我用ODBC试了一下,用Access的数据库引擎。提示错误:
“You do not have the necessary permissions to use the '****.AIS' object. 
  Have your system administrator or the person who created this object 
  establish the appropriate permissions for you”
用户名和密码都是正确的。我用Access2000可以打开。
 
 
来自:shangshang, 时间:2002-2-4 22:10:00, ID:906933 | 编辑 
我做过金蝶的一个配套, 其中.AIS就是他们的帐套文件,但全部有权限限制,是ACCESS的用户与组
的权限限制, 在用ADO访问时一定要在连接字符串里加上这些信息, 方法是在创建连接字符串时
在连接信息里加上ACCESS用户帐号和口令就行了.不知道这样能不能解决你的问题呢, 如果你觉的有可能的话, 还可以联系我
[email protected]
希望你早日高定,这样,我就可以挣些分了.^_^
 
 
来自:shangshang, 时间:2002-2-4 22:18:00, ID:906947 | 编辑 
哦,漏了一点,主要是时间久了,没记清,呵呵..你应该还有个.MDA文件啊,是ACCESS SYSTEM DATABASE 的文件,扩展名和ACCESS版本有关,
不过作用一样,就是管理打开权限的.呵呵 , 这个少不得的.
 
 
来自:harrylifeng, 时间:2002-2-5 8:47:00, ID:907321 
呵呵,我现在已经差不多搞掂了。多谢。
补充一点,我现在使用的Provider是Jet4.0,首先选择数据库,
然后设定其SYSTEM DATABASE为那个.MDA文件。再输入用户名和密码就可以
连接成功了。
感谢你的回复,接受答案了。
 
 
得分大富翁:shangshang 

解决方案 »

  1.   

    呵呵 ,再来一个问题:请问如何用ADO连接设了密码的Access的mdb数据库 ( 积分:50, 回复:8, 阅读:72 )
    分类:数据库-文件型 ( 版主:hbezwwl, 吴剑明 )  
    来自:jonson, 时间:2002-7-16 11:39:00, ID:1204932 [显示:小字体 | 大字体]  
    各位大吓:
    我用ADO的Microsoft Jet 4 Ole db Provider连接Access的mdb数据库时没有问题,
    但当我用Access设置了mdb数据库密码后,再用ADO连接,系统提示:‘测试连接失败,
    因为初始化提供程序时发生错误。无法启动应用程序。工作组信息文件丢失,
    或是已被其它用户以独占方式打开’
    请问各位怎样解决。
    感谢万分
     
     
    来自:shangshang, 时间:2002-7-16 11:53:00, ID:1204954 | 编辑 
    给你一个文章吧。ADO控件组一般都用来连接ACCESS数据库的。在数据库没有设密码的时候,用CONNECTSTRING就可以实现连接,但是如果有密码的,这时这个属性就不能用了,无论你怎么设置都无法连接!
       该怎么解决呢?我问了一下朋友,对有密码的ACCESS数据库如果用ADO只能动态设定,而且这里面的参数很复杂,其实并不是设的东西负责而是这个语句很繁琐!
    下面我把代码贴出,以供参考!
    Const
    {TADOConnection 连接数据库的参数}
      ADOLinkString ='Provider=Microsoft.Jet.OLEDB.4.0;'
              + 'Password=%s;'     //用户工作组(*.mdw)密码
              + 'User ID=%s;'     //用户工作组(*.mdw)用户名Admin
              + 'Data Source=%s;'    //数据库文件(*.mdb)位置
              + 'Persist Security Info=True;'
              + 'Mode=ReadWrite;'               // 数据库打开方式
              + 'Extended Properties=""'       //默认值为空
              + 'Jet OLEDB:System Database=""' //用户工作组文件
              + 'Jet OLEDB:Registry Path=""'   //注册路径
              + 'Jet OLEDB:Database Password=%s;' //数据库密码
              + 'Jet OLEDB:Engine Type=1;'
              + 'Jet OLEDB:Database Locking Mode=1;'
              + 'Jet OLEDB:Global Partial Bulk Ops=2;'
              + 'Jet OLEDB:Global Bulk Transactions=1;'
              + 'Jet OLEDB:New Database Password=%s;'    //?密码
              + 'Jet OLEDB:Create System Database=False;'
              + 'Jet OLEDB:Encrypt Database=False;'
              + 'Jet OLEDB:Don''t Copy Locale on Compact=False;'
              + 'Jet OLEDB:Compact Without Replica Repair=False;'
              + 'Jet OLEDB:SFP=False';var mainDBPath,
    mdwPassword,
        mdwUserID,
        mdbDataSource,
        mdbUserID,
        mdbPassword,
        mdbNewPassword:string;
    begin
      mainDBPath :=ExtractFilePath(ParamStr(0));
      mdwPassword :='';
      mdwUserID :='Admin';
      mdbDataSource :=mainDBPath+'data\hongyu.mdb';
      mdbUserID :='Admin';
      mdbPassword :='123456';
      mdbNewPassword :='';  //---这样设置完后再连接到控件的属性上就可以了!---//
        with ADOQry_User do
        begin
        {以上是给变量赋值}
          Active :=False;
          ConnectionString :=Format(ADOLinkString, [mdwPassword,dwUserId,                  mdbDataSource, mdbPassword, 
    dbNewPassword]);{初始连接参数}
          end;
    end;其实把连接对话筐里的all页里的'system database'设为你的工作组信息文件就该够了。
     
     
    来自:shangshang, 时间:2002-7-16 11:54:00, ID:1204957 | 编辑 
    刚才的最后一句就该解决你的问题了。
     
     
    来自:youcan, 时间:2002-7-16 12:28:00, ID:1204974 
    给你一个最简单的
    你的密码应该写在最后一页的 jet oledb database password 中。也就是“所有”那一页
    “连接”那一页的“空白密码”还是选着 
     
    来自:twos, 时间:2002-7-16 12:48:00, ID:1205034 
    设置数据库密码,就可以了
     
     
    来自:zryzry, 时间:2002-7-16 12:57:00, ID:1205048 
    不要设数据库密码,
    设一个管理员密码
     
     
    来自:hnlygtjj, 时间:2002-7-16 13:53:00, ID:1205116 
    我试过你们所说的所有的方法,没有一个可行的。
     
     
    来自:jonson, 时间:2002-7-16 14:49:00, ID:1205202 
    youcan的方法很好
     
     
    来自:dreamliu2001, 时间:2002-7-16 15:01:00, ID:1205238 
    试试这个:
    直接把你的Ado控件的ConnectionString设为:
    Provider=Microsoft.Jet.OleDB.4.0;
    Data Source=E:\db.mdb;//这里是你的数据库文件的路径及文件名
    Jet OLEDB:Engine Type=5;
    Locale Identifier=0x0804;
    Jet OLEDB:Database Password=YourPassWord//这里是你的密码
     
     
    得分大富翁:shangshang-10,youcan-40,