Solved

TDBISAMQuery issues

Posted on 2003-12-11
10
619 Views
Last Modified: 2010-04-16
Hello everyone.
I'm using a TDBISAMQuery in our application and every once in a while, it errors out on ExecSQL. I believe the problem is the query object is trying to access one of its cached results when it is locked.
This error is very sporadic and hard to reproduce. However, this error does exist and I was hoping someone knows of a solution or work around.

Thanks,
Rob
0
Comment
Question by:Robn
  • 5
  • 5
10 Comments
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 9924397
Hello

 Your comments doesn't help much, Can you please tell us which version you are using from DBIsam, the error message that you got, and a part from the code that produce the error, thanx :-)
0
 
LVL 2

Author Comment

by:Robn
ID: 9928211
The engine version is 3.20.
The code looks something like this

  FQuery := TDBISAMQuery.Create(nil);
  try
    FQuery.DatabaseName := TablePath;
    FQuery.SQL.Text := 'SELECT * FROM <TABLENAME>';
    FQuery.ExecSQL;  <-- This line produces the error.
    {...}
  finally
    FQuery.Free;
  end;

The exception that is created is something to the effect of "Access Denied" to some cache file. I can't remember the exact message but I'll post it if I see it again.

I really dislike this component but this is what the company ordered so this is what I'm stuck with at the moment.

Thanks,
Rob
0
 
LVL 2

Author Comment

by:Robn
ID: 9930803
ok, I got the error
EDBISAMEngineError
"DBISAM Engine Error # 11013 Access denied to table 'C:\...\37080.IDX'.

37080.IDX is a cache file generated by TDBISAMQuery.

Any takers on this error and how to fix it?

Thanks,
Rob
0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 9931713
Hello Rob

  First of all, try to update the engine to the lastest version, it's now 3.27, many bugs fixed from the version 3.20

this error happen when you open the table as exclusive mode, insure that there's any table components opening the same table with exclusive property is true

>> I really dislike this component

DBIsam is one of the best replacement of BDE, it's good engine and reliable too
0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 9931974
hmm, the IDX is index file not data file

Can you tell us more info please, are you using dbisam client/side or standard edition
are you accessing the database at same computer or from network

try adding session components, and set PrivateDir to a folder which you want the engine to create the temp files on it,

if you still have problems, try to verify the database and repair it, maybe some errors happen or indexed are corrupted

HTH
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 2

Author Comment

by:Robn
ID: 9944619
My company ordered this component so I don't know if I can upgrade to the latest version or not.
The IDX file (in this case) is a cache file that this component creates. The databases are fine. I'm also using the DBISAM table component to access the tables in some cases and this works without a problem.
These errors happen when using the application locally on my machine. No other connections to the tables are open from other processes.
I know DBISAM is a poor client server database component but these errors are all local. Although I'm sure they appear every once in a while to our clients. I know our QA department has seen this error before. However, when not debugging the software, the error appears as an access violation in the VCL.

These session components you talk about, are these objects that are assigned to the query component?

Thanks,
Rob
0
 
LVL 22

Accepted Solution

by:
Mohammed Nasman earned 500 total points
ID: 9948602
>>I don't know if I can upgrade to the latest version or not
you can get the lastest updates free

>>I know DBISAM is a poor client server database component
there's edition for C/S which work betters in C/S enviromant, it's not powerful like Oracle or Ms Sql server, but it's widely used with Delphi and C++Builder

>>These session components you talk about, are these objects that are assigned to the query component?
Yes, you can add one to the Data Module and assign all the tables and query to it

if you still have the problem after updating to latest edition, contact the ElevateSoft, they are very helpful and their support is great

you can ask them in their newsgroups or via email, here's the page support

http://www.elevatesoft.com/support.htm
0
 
LVL 2

Author Comment

by:Robn
ID: 9948716
Thank you mnasman!
0
 
LVL 2

Author Comment

by:Robn
ID: 9951737
I upgraded to version 3.27 and it works. The exception is still raised once by the component but it is now handled better. The application used to become very unstable and would cause all sorts of errors when closing down. Now the application continues to run and closes properly even when the error happens.
Thank you for the tip mnasman!

Regards,
Rob
0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 9955187
Hi Rob
I'm glad that's working better with you now, keep your eyes in ElevateSoft site for other updates

and thanks for the points too :-)

Regards,
Mohammed Nasman
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now