From: Don B. <db...@tc...> - 2002-03-29 23:05:13
|
Brian, On Fri, 29 Mar 2002, Brian Bruns wrote: > On Fri, 29 Mar 2002, Don Badrak wrote: > > > Brian, > > > > > I'll see what I can see, I'm convinced that the general approach is right. > > > You have rows from when the table had less columns. > > > > That's the thing I don't grasp. On disk (I used 'od -cx' and KHexEdit > > (which is pretty cool, BTW)), it looks fine. > > Thing to remember is that not all occurances of a row on disk are valid, > there is much uninitialized garbage in an mdb file, so you may have what > looks like a row, but is deleted or simply present from recycled, > uninitialized memory. > > > Ah. Wait. I've found a SECOND occurance of this record. This one has that > > record I was talking about (with the extra data). Hmm. > > > > Let me dig more and see what's up. Oh. So, I think I found something. Based on your suggestion, that it could have had an additional column at one point, I looked closer at it, and the other records with problems. | (start of varible data at 0x0309, just like above): | | 0300 40 00 00 00 00 00 00 00 40 xx xx xx xx xx xx xx @.......@xxxxxxx | . | . | 03e0 xx xx xx xx xx e5 ca c9 bf b5 b1 a7 9a 8a 83 7b xxxxx..........{ | 03f0 64 4a 40 2f 25 24 21 19 09 ff 00 13 ff ff ff ff dJ@/%$!......... | 0400 ff ff 0f ... Can FF be a valid offset? I'm thinking no. If it is, then of course, my solution isn't valid. What I did is put in a check if the first column offset is FF. If so, it decrements the start of the data (col_start) and eod page numbers to be one less. I don't know if more than one FF would occur, but if so, it's certainly something that can be checked, and if it happens, we can look and see what the data show for it. I've attached a patch. This solves my immediate problem with bad data in fields. Please take a look and let me know if you think it is flawed. Don -- Don Badrak <db...@ce...> 301.763.5534 work Telecommunications Office 301.457.4438 fax U.S. Bureau of the Census Suitland MD, USA |