我做了一个服务程序,这个服务启动后打开一个新的进程。这个新进程不能打开一个本地的access数据库文件做查询操作,指示指定文件已经被独占,或没有打开的权限,请问怎么才能打开这个文件?先谢谢了!

解决方案 »

  1.   

    用CreateProcessAsUser创建进程,看是不是服务的权限不够高
      

  2.   

    我只想用系统默认的帐号,别的帐号有密码的,不能在各电脑上通用,系统中的LocalSystem 帐号是默认的帐号,我有一个服务可以打开数据库的,不知为什么,这个服务创建的进程确打不开数据库文件
      

  3.   

    怎么设呢?我用CreateProcess为什么就不行了呢,是不是里面的security_attribute没设好?应怎么设置它呢?
      

  4.   

    access数据库的打开模式有几种,独占只是其中一种模式,
    你可以打开access数据库,把它设为普通的打开模式就行!
    看看Access的帮助==================================打开 Access 数据库
    在“文件”菜单上,单击“打开”  。 
    单击“打开”对话框左侧的快捷方式,或者在“查找范围”框中,单击包含要打开的 Microsoft Access 数据库的驱动器或文件夹。 
    在文件夹列表中双击相应的文件夹,直到打开包含所需数据库的文件夹。
    如果找不到想要打开的数据库,请单击“打开”对话框中的“工具”,再单击“查找” 。在“搜索”对话框中,输入附加搜索条件。有关选项的“帮助”,请单击问号  ,再单击该选项。 请执行下列操作之一: 
    双击数据库 
    若要在多用户环境下打开共享的数据库,使您和其他用户都能读写数据库,请单击“打开”。 
    若要为只读打开数据库,使您能查看但不能编辑,请单击“打开”按钮旁边的箭头,再单击“以只读方式打开”。 
    若要独占打开数据库,请单击“打开”按钮旁边的箭头,再单击“以独占方式打开”。 
    如果要以只读访问方式打开数据库,并且防止其他用户打开,可单击“打开”按钮旁的箭头,并单击“以独占只读方式打开”。 可直接打开外部文件格式(如 dBASE,Paradox,Microsoft Exchange,Microsoft Excel)的数据文件;也可直接打开任一 ODBC 数据源,例如 Microsoft SQL Server 或 Microsoft FoxPro。Access 在数据文件的同一文件夹中,自动创建新的 Access 数据库,并添加到外部数据库中的表的链接。
      

  5.   

    com环境没初始化吧,每个线程都要初始化的。