Corrupted DBF file

Posted on 1998-10-26
Last Modified: 2008-02-01
I have a problem where dbf files will show an incredibly large (not to mention completely impossible) size.  Currently, the size reported if I do a listing is over 3 gig.  This is obviously wrong since it is stored on a 1gig drive.  Any ideas why this is happening or how to fix it?
Question by:lcoombes
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

Expert Comment

ID: 1025859
Sounds like a corrupt FAT table.

Try backing up the entire drive (on a sector by sector rather than file basis if you can, i.e.: an immage backup) and then try running scan disk.

NOTE: Scan disk will as likely as not destroy the DB file. If you can´t do an immage backup, and don´t have a backup of the DB, you´r best shot will probably hex editing the FAT and fixing it by hand.

Expert Comment

ID: 1025860
Carefull jpk,

When this happens, indeed the FAT has been corrupted.
The only way to fix this is running scandisk.
Scandisk will normally fix things the right way.
You will not be able to backup your harddisk. When your fat got damaged, you cannot even make a copy of your DBF files to another disk or diskette.
Noth that your PC has 2 fat's. When one got mixed up, the other can be placed over the forstµ. That's what scandisk does.
There is allways a possibility your disk is severe damaged. Scandisk will not put things right then. It is however the only thing to do.

Start Scandisk (in DOS) or clicking my computer, selecting your C-drive. Click the right button and choose properties.

Click the tabpage EXTRA and further, click Ckeck disk. Scandisk will launch and report the errors. Choose Fix for every error reported. Your DBF files should be recovered if (and only if) your disk itself isn't damaged.


Author Comment

ID: 1025861
Okay, to start off, I made a mistake.  It is the dbt file.  Not the dbf.  Secondly, this is on a Novell Intranetware 4.11 server, so it does not use the same sort of FAT system.
Webinar: Deploying MySQL in production 6/22 11am

Join Percona’s Senior Operations Engineer, Daniel Kowalewski as he presents Deploying MySQL in production on Thursday, June 22, 2017 at 11:00 am PDT / 2:00 pm EDT (UTC-7).


Accepted Solution

foxsage earned 150 total points
ID: 1025862
If the database have memo fields it could be that the memo fields have grown too large.

If so, memo fields are failry easy to 'shrink'.

Author Comment

ID: 1025863
Okay, there are memo fields.  I take it that the memo data is stored in the dbt file.  How do I shrink them?  And why would they be reporting a size which is larger than the drive they are residing on?

Author Comment

ID: 1025864
Please explain how to "shrink" these dbt files.  I think your answer is right on target, but you did not tell me how to fix it.  Let me know soon.

Expert Comment

ID: 1025865
The problem with memo fields is that their block size can grow enormously and eat up huge amounts of disk space. Foxpro uses SET BLOCKSIZE to set block size for memo fields.  To determine the block size of memo fields for foxpro tables, open the table and issue the ?sys(2102) command, which returns the size of the memo field. (In foxpro, the default is 64).

However, it doesn't sound like you are using foxpro tables since the memo file extension is .dbt instead of foxpro's .fpt.

Anyway, to fix corrupted memo fields for dbf, fpt or dbt, I suggest an inexpensive software program called MemoPlus by Rory Data International. I think its the best software available and a must for database applications. (I don't think there is an adequate programming solution to fixing corrupted memo fields.)

Hope this helps.

Expert Comment

ID: 1025866
if you use dbase and can open the table (only size shown is wrong) i will give you a tip if you´re interested.

Author Comment

ID: 1025867
Well, I've finally gotten a chance to check into this (been out of town for a while) and could not find MemoPlus (except for the Palm Pilot program) or Rory Data International.  Is there a web site where I can find this software?  Please let me know.  Thanks.

wk51 - Sure.  We have already loaded off of a backup, but this problem has occurred before.  I can open the database when it is occuring, so I'd love to hear your idea.  Thanks!

Expert Comment

ID: 1025868
Look at 
description of *.DBT file structure. You can easy check only header of your .DBT file and manually (in any binary editor) write correct information. I've made it some times.

Expert Comment

ID: 1025869
Have your network administrator run VREPAIR (or similar on 4.11) on the offending volume.
This will check the volume for any allocation problems.
If that doesn't fix the problem, the db prog may be the cullprit.
Did it ever run correctly?

Featured Post

Webinar: Choosing a MySQL HA Solution

Join Percona’s Principal Technical Services Engineer, Marcos Albe as he presents Choosing a MySQL High Availability Solution on Thursday, June 29, 2017 at 10:00 am PDT / 2:00 pm EDT (UTC-7).

Question has a verified solution.

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

These days, all we hear about hacktivists took down so and so websites and retrieved thousands of user’s data. One of the techniques to get unauthorized access to database is by performing SQL injection. This article is quite lengthy which gives bas…
This post contains step-by-step instructions for setting up alerting in Percona Monitoring and Management (PMM) using Grafana.
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
This is a high-level webinar that covers the history of enterprise open source database use. It addresses both the advantages companies see in using open source database technologies, as well as the fears and reservations they might have. In this…

734 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