Problem: The errors are: Cannot find file e:temppdoxusers.lck Permission Denied Solution: In some sequences of events BDE will store data in temporary Paradox tables. Some of the scenarios where BDE creates temporary Paradox tables are with heterogeneous joins, and with CachedUpdates. BDE will look to where the Paradox PrivateDir is set to be. This will be based on the drive and directory that the application is launched from. If the application is launched from a networked or mapped drive then the temporary Paradox tables will be created on that drive and network rights will be an issue. In most cases it will be sufficient to route the Paradox PrivateDir setting to the local drive. The code snippets below show two possible approaches to doing this in Delphi. These approaches require the use of the Session object, specifically the Session.PrivateDir member of the object. This also requires having DBTables in the Uses clause. One approach is to reassign the Session.PrivateDir to the Windows temporary directory, by calling the GetTempPath() Windows API function call. Add Windows to the Uses clause so that GetTempPath() can be called. The other approach is to assign a hard coded path to Session.PrivateDir. Uses Windows, DBTables const temp_path_len = 512; var temp_path: array[1 .. 512] of char; // // Place this code snippet at the // approriate place in the code // GetTempPath(temp_path_len, @temp_path); Session.PrivateDir := StrPas(@temp_path); // // or // // Session.PrivateDir := 'C:Temp';
Last Modified: 26-SEP-00