?
Solved

TDBISAMQuery issues

Posted on 2003-12-11
10
Medium Priority
?
643 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
Suggested Courses
Course of the Month10 days, 17 hours left to enroll

770 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