Currupt tables after going from 16 to 32 bit

Hello,

We recently upgraded our 16 bit Delphi application to 32 bit for our users.  Each user has 3 Database tables.  
In some instances, after installing the software their tables appear to be corrupt. The users would get "Master record Missing" errors when attempting to add date.

It appears that there are ophen records in the third table. To fix it...we do a query on the table and save it. Then we go into the table via Paradox and delete all the records and then import the saved query. The ophen records are then rejected.

Is there any way to fix this or an easier way to fix it so we aren't bombarded with problems when they all start installing it at once.
reenie1Asked:
Who is Participating?
 
kretzschmarConnect With a Mentor Commented:
you could use a simple query like

delete from childtable where master_id not in (select id from mastertable)

not tested

meikl ;-)

0
 
swift99Commented:
I would be concerned about orphan records.  

One of your processes is performing a partial commit or partial rollback, or possibly the master record delete process is incomplete.  Or, of course, you may simply have exposed a bug in the referential integrity of an earlier version of the BDE.

Cleaning up the data is one thing, but you want to be certain of _why_ the records are orphan before committing to a code release.
0
 
kretzschmarCommented:
>certain of _why_ the records are orphan before
>committing to a code release.

guessing in the earlier release was no referential
integrity implmented

>performing a partial commit or partial rollback

not possible with paradox-tables (no sql server)

meikl ;-)
0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

 
swift99Commented:
> not possible with paradox-tables (no sql server)

meikl: too true.  I've been out of the ISAM world too long.
0
 
kretzschmarCommented:
>I've been out of the ISAM world too long.
i too, but some cases i can remember :-))
0
 
swift99Commented:
> not possible with paradox-tables (no sql server)

but it is possible that the buffers were not flushed fully when the application terminated ...
0
 
kretzschmarCommented:
yes, but only by an abnormal abend->means crash
0
 
swift99Commented:
they must have fixed things in the BDE since I last used it for ISAM work.  I used to have no end of problems if I didn't explicitly call its flush bufers method with paradox tables before closing the app.   :o)
0
 
reenie1Author Commented:
The strange thing is that the orphan records were dated 1998. We created this system in 99 and users could only add years from 1999 and up (the year is part of the key)
We did not allow them to add detail records without a master record for any particular year.
0
 
kretzschmarCommented:
seems something went wrong with the 16 bit app,
maybe the user adds master and details for 1998 by mistake
and then the user deletes the master-record

is this possible in the old app?

meikl ;-)
0
 
reenie1Author Commented:
I wasn't sure who to award points to but I guess since you were the first and i'll have to delete the masterless children..you get the points.

I think you were all correct in that there were referential integrity problems in the prior version because i now remember some users lost master records..and when they were readded, the child records showed up. So apparently the children remained in the table even thought the parent was gone.

Thanks everyone.
0
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.

All Courses

From novice to tech pro — start learning today.