Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM General » View Thread |
Messages 11 to 19 of 19 total |
D6, DBISAM & W7 64bit |
Sat, Dec 25 2010 4:51 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Gregory
As an update Malcolm kindly tested it on his W7 64bit machine and no problems. >- That the session, database and datasets are all closed at design time so >the app is is not accessing any design time path on the target machine when >the app starts Yup - GExperts does that for me - I got fed up of being caught out >- That the Session.PrivateDir is set to a valid path at runtime and its not >using a non existent design time path. Session.PrivateDir is set once when the app starts using Session.PrivateDir := GetWindowsTempPath; function GetWindowsTempPath: string; var TempPathName: array[0..250] of Char; begin try if GetTempPath(250, TempPathName) <> 0 then Result := TempPathName else begin ForceDirectories('C:\Temp'); Result := 'C:\Temp'; end; except ForceDirectories('C:\Temp'); Result := 'C:\Temp'; end; end; >Could also ask the user to : >- Confirm that the hard disk is configured as C drive and that C does not >point to a removable disk. Already done >- Update their copy of Windows as it could be Windows/ hardware issue. Interesting thought. >Got to go now. My daughter's preparing Christmas lunch. Merry Christmas to >all. Enjoy your contribution to it - eating Roy Lambert |
Mon, Dec 27 2010 7:57 PM | Permanent Link |
Gregory Sebastian | Hi Roy,
<< "Roy Lambert" <roy.lambert@skynet.co.uk> wrote in message news:46B56E82-B3C1-48EA-B9A2-B177CE01CE3B@news.elevatesoft.com... Session.PrivateDir is set once when the app starts using Session.PrivateDir := GetWindowsTempPath; function GetWindowsTempPath: string; var TempPathName: array[0..250] of Char; begin try if GetTempPath(250, TempPathName) <> 0 then Result := TempPathName else begin ForceDirectories('C:\Temp'); Result := 'C:\Temp'; end; except ForceDirectories('C:\Temp'); Result := 'C:\Temp'; end; end; >> I'm only speculating here but the only way I can see the above code causing the issue that your end user is facing now is if the GetTempPath() function does not work under Win7 64bit anymore. Then ForceDirectories('C:\Temp') may or may not work under Vista and Win7 depending on the user UAC setting and the execution level of the app. This may be just the standard error message that W7 throws up when the folder C:\Temp folder could not be created. Unfortunately, I too could not get my hands on a Win 7 64bit machine to confirm this. I wonder if the 'C:\Temp folder was created on Malcolm's 64bit machine or if Windows did in fact return the Windows User Temp folder. If you've had a look at other parts (like your database path, disabling AV program etc) without any success and want to try something different for the temp folder, try this : function GetAppTempDir : String; Const APP_SUB_FOLDER = '\YourBizName\YourAppName'; var AppTempPath, Mes1, Mes2 : String; begin AppTempPath := GetEnvironmentVariable('Temp') + APP_SUB_FOLDER; result := AppTempPath; If Not DirectoryExists(AppTempPath) then try ForceDirectories(AppTempPath); except result := ''; Mes1 := Format('Unable to create temp folder at : %s',[AppTempPath]); Mes2 := 'Program will close now. Ensure that the specified path is not write protected, then try again'; MessageDlg(Mes1, mtError, [mbOK], 0); MessageDlg(Mes2, mtError, [mbOK], 0); Application.Terminate; end; end; The above appears to work well from XP to W7. It also report back if the temp folder could not be created so you can eliminate this as a problem. << Enjoy your contribution to it - eating >> Yeah I always volunteer my services as "food taster" for these occasions. Its hard work being a food taster . Regards Gregory Sebastian |
Tue, Dec 28 2010 3:36 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Gregory
I'll suggest the user manually creates c:\Temp and see if that cures it. If so at least I know where the problem is coming from. Roy Lambert |
Tue, Dec 28 2010 4:42 AM | Permanent Link |
Gregory Sebastian | Roy,
One more thing the user could try is to right click the executable or its shortcut and hit "Run As Administrator". If the error goes away then its likely that the app is referencing folders etc that can only be accessed at the higher execution level on this computer. May have nothing to do with removable drives. Regards Gregory Sebastian |
Tue, Dec 28 2010 8:13 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Gregory
>One more thing the user could try is to right click the executable or its >shortcut and hit "Run As Administrator". If the error goes away then its >likely that the app is referencing folders etc that can only be accessed at >the higher execution level on this computer. May have nothing to do with >removable drives. Since I wrote the app I can be almost sure that that isn't the case. Apart from Session.PrivateDir it sticks to its own set of directories. Having said that, with Microsoft, who knows. |
Tue, Dec 28 2010 10:56 AM | Permanent Link |
Malcolm Taylor | Roy Lambert wrote:
> Gregory > > > I'll suggest the user manually creates c:\Temp and see if that cures > it. If so at least I know where the problem is coming from. > > Roy Lambert Hi Roy The machine I tested on does not have a C:\Temp, but that would be because it has a valid WindowsTempPath. Do you use MadExcept or EurekaLog? Personally I use MadExcept, but either should give the source code line number where the error is raised. Malcolm -- |
Tue, Dec 28 2010 6:03 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Roy,
<< Someone is running an old app written in Delphi 6 using DBISAM 4.2x on their nice new W7 64bit machine and are getting the following error: --------------------------- Techniques.exe - No Disk --------------------------- There is no disk in the drive. Please insert a disk into drive \Device\Harddisk1\DR1. --------------------------- Cancel Try Again Continue --------------------------- >> This means that your application is trying to access a path that doesn't exist on the target machine. If you want to send me the application, I can try it here and tell you what the issue is. -- Tim Young Elevate Software www.elevatesoft.com |
Wed, Dec 29 2010 5:34 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Tim
Thanks for the offer. I may yet take you up on it. However, I've just spent another 30 mins on the phone with the user and I'm pretty sure the problem is Norton 360. The updated information is that if OK is clicked on the error message the app opens up and shows the data. Move to the contact or company page and the data is shown. Try and do a search on contacts and the error is shown again. Click OK and again the data is shown. The user has gone away to have another look at excluding the directory from scanning or real time protection. Roy Lambert |
Mon, Jan 10 2011 7:26 PM | Permanent Link |
Malcolm Taylor | Glad to learn you solved thhis one. <gdr>
|
« Previous Page | Page 2 of 2 | |
Jump to Page: 1 2 |
This web page was last updated on Wednesday, April 24, 2024 at 11:07 AM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |