Solved

TDBISAMQuery issues

Posted on 2003-12-11
10
614 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:mnasman
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:mnasman
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:mnasman
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
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

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

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
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…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

708 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

15 Experts available now in Live!

Get 1:1 Help Now