Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 4 of 4 total
Thread workstation error on query
Sat, May 26 2007 10:38 PMPermanent Link

"Huhtaman"
Hello:

   Using dbisam 1.1 and im creating a simple query - one workstation gets
11013 access denied on a temp file 60000.dat or something. My app is
attempting to create the file in our directory under program files on the
computers c drive (where the app is launched).

   The user isnt an admin user. System is XP on a peer to peer network.

   do I need to set the working dir or private dir to some other area ???
What area should I point to ??? What component allows this ??? Thank you.



Neil

Sun, May 27 2007 8:50 PMPermanent Link

Gregory Sebastian
Hi Neil,
Not really sure about V1.1 but in V3, you can add a persistant Session & Database Component and tie the tables or Queries to them. Set the Session.PrivateDir to a folder that is accessible
to ALL users (admin or limited).

As for where to point it to, I'm still looking for a better solution myself but heres a simplified version of what I do at the OnCreate event of the datamodule

Session.PrivateDir := GetAppTempDir;

function TdmodMain.GetAppTempDir : String;
Const
APP_SUB_FOLDER = '\MyCompany\MyApp';
var
AppTempPath : String;
begin
 AppTempPath := GetEnvironmentVariable('Temp') + APP_SUB_FOLDER;
 If Not DirectoryExists(AppTempPath) then
    ForceDirectories(AppTempPath);
 result := AppTempPath;   
end;

You can also use "SHGetSpecialFolderPath" instead of GetEnviromentVariable.
Above will work well for all user accounts on all OS providing you don't use Alter Table SQL or RepairTable methods.

Regards
Gregory

Tue, May 29 2007 6:09 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Neil,

<< Using dbisam 1.1 and im creating a simple query - one workstation gets
11013 access denied on a temp file 60000.dat or something. My app is
attempting to create the file in our directory under program files on the
computers c drive (where the app is launched). >>

If you're creating the table with the name 60000.dat, then most likely the
issue is an AV issue:

http://www.elevatesoft.com/bulletin_14.htm

The workaround is to use a different directory that isn't being scanned by
the AV software, or to use a different table name.

--
Tim Young
Elevate Software
www.elevatesoft.com

Wed, May 30 2007 5:24 AMPermanent Link

Gregory Sebastian
Hi Neil,
<<My app is attempting to create the file in our directory under program files >>
This is not a good idea. It was ok from WinME and below. But under Win2000 and above, normal users do not have Windows permissions to write to
the Program Files folder. You will more than likely get a 11013 access denied error if the user does not have Admin priviledges.  

It gets worse under Vista, even logging in under an Administrator account may not be enough, the user may have to explicitly call for "Run As
Administrator" for the App to work properly. All temp files have to be moved elsewhere. Ini files also have to be moved to the registry or another
folder.

Regards
Gregory
Image