• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 440
  • Last Modified:

Corrupted DBF file

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?
1 Solution
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.
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.

lcoombesAuthor Commented:
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.
Improve Your Query Performance Tuning

In this FREE six-day email course, you'll learn from Janis Griffin, Database Performance Evangelist. She'll teach 12 steps that you can use to optimize your queries as much as possible and see measurable results in your work. Get started today!

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'.
lcoombesAuthor Commented:
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?
lcoombesAuthor Commented:
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.
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.
if you use dbase and can open the table (only size shown is wrong) i will give you a tip if you´re interested.
lcoombesAuthor Commented:
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!
Look at http://loki.borland.com/winbin/bds.exe?getdoc+2821+Delphi 
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.
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?
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now