Delphi开发的数据库程序在C:\PDOXUSRS.NET生成文件,拒绝访问及读写权限

Delphi开发的数据库程序在C:\PDOXUSRS.NET生成文件,拒绝访问及读写权限, "无法打开 PARADOX.NET。这个文件可以随便删除的,下次会自动产生。

Permission denied.C:\PDOXUSRS.NET

如果用于没有对C:\PDOXUSRS.NET的写权限,系统就会报错。

PDOXUSRS.NEt为计算机根目录下的一个数据库,在文件C:盘根目录下生成。

果你装了Delphi编的程序,而它用的是Paradox数据库,就会出现这样的问题。我使用BDE访问Oracle数据库也会出现此问题。

可以改变这个文件的存放位置

如Tdatabase1.session.netfiledir:=d:\abdd\;或者存放在自己程序的目录,这样就不会有权限的问题了。还有几个属性NetFileDir、PrivateDir和ConfigMode属性。

我发现当Tquery1.CachedUpdates:=true;时就要产生这个文件。

Network initialization failed.

Permission denied.
File:C:\PDOXUSRS.NET
Directory:C:\.
 

ExeSQL是直接执行SQL语句,而与CachedUpdates没有任何关系。

CachedUpdates是指对TTable或TQuery中的已修改的数据进行缓存,直到调用
ApplyUpdates.

ApplyUpdates是对TQuery或TTable中已修改,但为提交的数据进行提交,
并且只有在TQuery或TTable对象的CachedUpdates=True且Active=True,
State=dsbrowse时才能调用。

TQuery的CachedUpdates必须陪合TUpdateSQL控件才能使用。
例如:
    Query1.SQL.Text:='select field1,field2 from table1';
    Query1.CachedUpdates:=True;
    Query1.UpdateObject:=UpdateSQL1;
    UpdateSQL1.InsertSQL:='insert table1(field1,field2) values (:field1,:field2)';
    UpdateSQL1.deleteSQL:='delete from table1 where field1=:field1,field2=:field2';
    UpdateSQL1.ModifySQL:='update table1 set field1=:field1,field2=:field2 where field1=:old_field1 and field2=:old_field2;

    Query1.Open;
    Query1.First;
    while not Query1.Eof  do begin
       Query1.Edit;
       Query1.FieldByName('field1').AsString:='123';
       Query1.Post; //此时数据并未提交到后台。
       Query1.Next;
    end;
    Query1.Database.StartTransaction
    try
      Query1.ApplyUpdates;
      Query1.Database.Commit;
   except
      Query1.Database.Rollbback;
      raise;
   end;  
   Query1.CommitUpdates;

Paradox数据库文件放在一服务器上的某一共享目录下,当一个用户在访问, 另一用户打开文件时会显示“Pdoxusrs.Lck 被其它用户使用.
, Paradox.Lck, PdoxUsrs.Lck
文件是用来控制纪录或文件锁定的。paradox就靠它知道当前纪录有谁在用。
这是系统文件可以不必管它。

--------------------- 本文来自 大聪 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/dacong/article/details/51039990?utm_source=copy

猜你喜欢

转载自www.cnblogs.com/alannxu/p/9758556.html