Solved

TDBISAMQuery issues

Posted on 2003-12-11
10
626 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
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
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
 
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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

808 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