Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Table header corruption - can't add rows to table
Message
De
15/08/2001 14:43:14
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Table header corruption - can't add rows to table
Divers
Thread ID:
00544233
Message ID:
00544233
Vues:
46
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
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform