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

2019-09-10 10:39:51 浏览数 (1)

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

0 人点赞