m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=project.mdb","","",adModeShareExclusive);
是这样吗?
adModeShareExclusive:阻止其它Connection对象打开连接
但是我一执行这一句就提示找不到数据库,而用adModeUnknown就可以
为什么?

解决方案 »

  1.   

    我试了一下,没有你说的错误呀!!!
    [转贴]
    通过Connection对象的Open方法来进行连接数据库的,下面是该方法的原型
    HRESULT Connection15::Open ( _bstr_t ConnectionString, _bstr_t UserID, _bstr_t Password, long Options )
    ConnectionString为连接字串,UserID是用户名, Password是登陆密码,Options是连接选项,用于指定Connection对象对数据的更新许可权,
    Options可以是如下几个常量:
    adModeUnknown:缺省。当前的许可权未设置
    adModeRead:只读
    adModeWrite:只写
    adModeReadWrite:可以读写
    adModeShareDenyRead:阻止其它Connection对象以读权限打开连接
    adModeShareDenyWrite:阻止其它Connection对象以写权限打开连接
    adModeShareExclusive:阻止其它Connection对象以读写权限打开连接
    adModeShareDenyNone:阻止其它Connection对象以任何权限打开连接
      

  2.   

    可以打开呀 要不你换adModeShareDenyNone试试
      

  3.   

    adModeShareDenyNone这个参数可以用,但是达不到效果
    我想实现的功能是将这个程序放在一个共享目录中,每个可以访问此共享目录的人都可以运行该程序,但是一次只能运行一个,即有人使用时别人不能再使用
    大侠们有没有好的建议,这个问题困扰我一周多了
      

  4.   

    那我觉得这是应用程序问题而不是数据库问题,你可以用CMutex避免一次运行两个应用程序
      

  5.   

    就是啊在应用程序中用一个 Cmutex就可以了
    使其只运行一个实例!
      

  6.   

    不行的,用CMutex避免简单,是的话我就不用问了,但是不是我需要的