Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Table header corruption - can't add rows to table
Message
From
15/08/2001 14:43:14
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Table header corruption - can't add rows to table
Miscellaneous
Thread ID:
00544233
Message ID:
00544233
Views:
51
A table in one of my applications encountered the dreaded 'can't add rows to the table problem', which, judging by the many posts I have read on the topic here, is a well known vfp problem. I am hoping to clarify some of the issues surrounding this type of corruption, and determining the best strategy for avoiding it/fixing it in the future.

Here is a summary of the problem:

1) Uon save of a transaction in the system, rows were not being added to the table 'respmatr'.

2) Initially I thought it was a failure with one or more 'append from' commands. (I posted separately on the possible issues with append from in the past few days.)

3) Debugging the application revealed the following:
Respmatr started out with 610 rows. Table buffering was 5 for respmatr. The following commands were issued:

begin transaction
(do some other stuff)

select respmatr
append from dbf('currespmatr')
**respmatr is a table
**currespmatr is a cursor created with create cursor command - currespmatr always has **29 rows
browse nomod && shows the added rows, and record count shows as 639
llretval=tableupdate(.t.,.t.'respmatr') && llretval is true
end transaction
end the application
open respmatr and browse it - record count is 610. (no buffering)
** so at this point I suspect table header corruption - have seen it before. So I:
append a blank from the command window - it works. Now, for the time being, I think my table header corruption theory is shot.

But just to be sure I did the following:

copy the table data to a temp table
drop table respmatr
rebuild the table structure from scratch
append the rows back in.
repeat the debug process

After this the rows were added properly



More on environment:
VFP6, Win2k Professional – svc pack 1

Further discussion with the client revealed that prior to this there was a system crash – blue screen of death upon ejecting CD from CD drive

My questions are as follows:

1) I have seen other posts on here regarding this PARTICULAR type of corruption, ie. that rows can’t be added to the table. Will foxfix or sdt or recover find/fix THIS PARTICULAR TYPE OF corruption? Which is better?
(I seem to recall that in the past, when I had this type of corruption that the tools I had at the time did NOT detect it)
2) Why does the problem only show up when buffering is on and/or when in a transaction (I have seen other posts describing similar circumstance). What is the specific nature of the header problem?

3) Are any of these issues addressed/resolved with service packs?

4) Are there any win2k (only) settings that minimize the likelihood of the occurrence – e.g caching.

5) Can any of these problems be avoided by avoiding buffering and/or transactions? Can this happen WITHOUT a system crash?, e.g. is it related to buffering technique, or particular commands – e.g. insert into vs append blank vs append from?

Any ideas, experiences etc. would be greatly appreciated

TIA
Next
Reply
Map
View

Click here to load this message in the networking platform