Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM General » View Thread |
Messages 1 to 5 of 5 total |
Bug-0005 DBISAM Engine Error #11013 Access denied to table 'C:\Program Files (x86)\eInstruction\CPS\ |
Wed, Jun 22 2011 10:54 AM | Permanent Link |
Madhu | Hi Young,
This is Nagavardhan. We been facing a vague issue specific to windows7 64-bit machine. Can you please help us in sorting this out? To be brief about the issue: We are trying to execute a statement which alters the table by adding new columns. For this, we are using TDBISAMQuery object in Delphi6. We have set the DatabaseName property of the TDBISAMQuery object to the <user\App Data> folder. The DDL statement executes fine and adding the columns in Windows7 32-bit and Windows XP machines. But throwing the following exception on windows7 64-bit machine. DBISAM Engine Error #11013 Access denied to table 'C:\Program Files (x86)\XXX\XXX\XXX.DAT' Though we are explicitly passing the App Data path to the DatabaseName property. The Object is referring to the installation path where this project dll is placed. And throwing the exception. Following is the code: ________________________________________ procedure TcpsSATempTableManager2.AddTableColumns(aNumStandardsCol: Integer); var lQuery: TDBISAMQuery; begin if (DataPath <> '') and (aNumStandardsCol > 1) then begin lQuery := TDBISAMQuery.Create(nil); try Table.Close; lQuery.Close; lQuery.DatabaseName := DataPath; // Datapath here is reffering to the APP data folder. lQuery.SQL.Text := GetStudentTableAlterSQL(aNumStandardsCol); // This function will return a Alter table SQL statement. lQuery.ExecSQL; //Exception is thrown from this statement. Table.Open; finally lQuery.Free; end; {Try} end; ________________________________________ Awaiting for your suggestion. |
Wed, Jun 22 2011 1:05 PM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Madhu
My guess is you haven't set the PrivateDir appropraitely and that W7 64bit is doing something different to the 32 bit version. The PrivateDir path is the only one that DBISAM will set for you if you don't set it explicitly, and calls for directories under W7 can give strange results. The only other thing is W7 redirects. Since your's is a 32 bit app running on a 64 bit machine you can again get redirects. Roy Lambert [Team Elevate] |
Wed, Jun 22 2011 7:51 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Roy,
<< The PrivateDir path is the only one that DBISAM will set for you if you don't set it explicitly, and calls for directories under W7 can give strange results. >> Actually, the PrivateDir remained blank if not set prior to the last build (4.30 B5). As of 4.30 B5, the PrivateDir now defaults to the user's temporary files directory. -- Tim Young Elevate Software www.elevatesoft.com |
Wed, Jun 22 2011 7:53 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | << We are trying to execute a statement which alters the table by adding new columns. For this, we are using TDBISAMQuery object in Delphi6. We have set the DatabaseName property of the TDBISAMQuery object to the <user\App Data> folder. The DDL statement executes fine and adding the columns in Windows7 32-bit and Windows XP machines. But throwing the following exception on windows7 64-bit machine. >> Answered via email: You need to make sure that you set the TDBISAMSession.PrivateDir property to the proper temporary files directory: http://www.elevatesoft.com/manual?action=viewprop&id=dbisam4&product=d&version=7&comp=TDBISAMSession&prop=PrivateDir If you aren't using an explicit TDBISAMSession component in your application, then you can use the following code to do so: Session.PrivateDir:='c:\temp'; Just make sure that you execute this code before opening any tables or executing any queries. In addition: I forgot to mention that 4.30 B5 now automatically defaults the PrivateDir to the user's temporary files directory under Windows, but only if it hasn't been set. -- Tim Young Elevate Software www.elevatesoft.com |
Thu, Jun 23 2011 3:30 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Tim
><< The PrivateDir path is the only one that DBISAM will set for you if you >don't set it explicitly, and calls for directories under W7 can give strange >results. >> > >Actually, the PrivateDir remained blank if not set prior to the last build >(4.30 B5). As of 4.30 B5, the PrivateDir now defaults to the user's >temporary files directory. Amazing what memory does to you isn't it Roy Lambert |
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 |