I got always problems with Paradox tables on an NT workstation (128 Mo RAM).
Fortunately, I finally arrive to reproduce it whenever I want, by inserting
very quickly a big set of new records in a big Paradox table.
I use for that a Tquery in a Delphi 4 program
Requestlive=True;
CacheUpdates=false;
AutocalcField=false;
Constrained=false;
Paramcheck=false;
Paramcheck=false;
Unidirectional=False;
UpdateMode=upwhereall;
On this Tquery I run an SQL basic SELECT * FROM (tablename) where (1st
field)= 10 (for example)
Then I call prepare and open
And then I do a loop like :
For i:=0 to N-1 do
begin
Insert;
fieldbyname(1stfield).AsInteger :=i;
fieldbyname(other field concrned by a secondary index).AsInteger :=i;
Post;
end
of course I close the table.
when the program is finished, I verify the table with Dtutil32.exe
(downloaded from Borland site). The message is :
"Verification successfull. Verification cannot be completed"
I had checked the table with Paradox 8 software. And It is always the same
error.the last index or the index just before the last are damaged. If I
reduced the record number it works fine. But I just have to increase N for
reproducing the problem.
I think that this code is really not sophisticated !?
I tried each solution read in this newsgroup and others, separately and
together.
More explicitly, I tried :
Installing the last Service Pack from Microsoft
Setting local share to True
Working with block size of 16K rather than 32K
Increasing SharedMemsize and MaxBuffsize to 8192
Increasing Memsize to 64
Changing LangDriver (Pdox ANSI Intl)
Setting StrictIntegrity to FALSE
Coding Systematics calls to FlushBuffers after each post
Increasing the RAM to 256 Mo (better performance but no fix).
The only thing I did not try is to test the program on a W95 or W2K
computer. It will be done early.
The table structure is the following :
13 Alphanumeric fields (average size 10 )
16 Numeric fields
6 Logical fields
1 primary index on the first numeric field
7 secondary indexes on one only fields
2 secondary indexes on a combination (1 numeric field + 1 alphanumeric
field)
I think that it's not a complex structure.
Table's block size = 16
Record's size =326
Number of records : 562510
I have no integrity special parameters.
I am far away from the 1Gb limit (with 16K).
and I have only one table with this size in my Database. I have been
suggested by Bill Todd to change from Paradox to SQL server or Interbase but
just for one table in my Database ?
My opinion is that Paradox is really not a good database (in terms of
fiability).
It's really a problem for me to change the database. The migration to SQL
server is not as simple as it could seem first and needs to change some
important parts of the code.
Can somebody help me and give me som tips or hints ? Maybe there's something
else to try ?
What about my secondary indexes mixing Alphanumerics and numerics fields ?
What about the table language ? or other BDE Paradox ?
Any help will be appreciated
Regards