Database corruption with V4MD 2.4.3

Ruslan Zasukhin sunshine at public.kherson.ua
Tue Nov 7 17:59:51 CST 2006


On 11/7/06 5:25 PM, "Pierre Rossel" <prossel2 at myrealbox.com> wrote:

> Hello,
> 
> I get my database corrupted by doing simple updateRecord on all records of a
> cursor.
> 
> The table has 800 records and Vstudio 2.4.3 diagnoses no problem. I build a
> cursor with: 
> 
>   SELECT mediaData FROM MediaItem WHERE collectionCode='TEST'
> 
> Then for each record, I eventually modify the mediaData field (remove some
> trailing white spaces) and updateRecord(). In total I have about 100 records
> updated.
> 
> Then going back to Vstudio, diagnose show errors on table MediaItem. Here is
> the extract of the full details story:
> 
> ==========> Field: mediaData , type Text
> ==========> IndexFile
> PAGE (0, 0) Inventory pages have wrong physical page number.Inventory pages
> have wrong sum of physical page numbers.Index Inventory pages CORRUPTED.
> Some big page is not marked as first.
> 
> 
> Problems found!  ( IndexFile )
> 
> First Segment 6619219 of record with RecID = 1 is bigger of the last segment
> 9965
> 
> Problems found!  ( Field: mediaData , type Text )
> 
> 
> Problems found!  ( Table: MediaItem )
> 
> 
> Here is the code:
> 
>   sSql = "SELECT mediaData FROM MediaItem WHERE collectionCode='JEM'"
>   cur = db.Query(sSql, #DefaultSave) -- returns a Valentina cursor
>   if not voidP(cur) then
>     bFound = cur.firstRecord()
>     repeat while bFound
>       bModified = false
>       sData = cur.field("mediaData").value & ""
>       repeat while [" ", RETURN, TAB].getPos(sData.char[sData.length])
>         bModified = true
>         delete the last char of sData
>       end repeat
>       if bModified then
>         cur.field("mediaData").value = sData
>         cur.updateRecord()
>         --cur.updateRecord([#mediaData: sData])
>         
>         db.HandleError()
>         if db.getError() then
>           alert "Error updating record"
>           exit repeat
>         end if
>       end if
>       bFound = cur.nextRecord()
>     end repeat
>   end if
> 
> 
> I tried with 2.5b11, but I had other problems (Director crashes) that made
> me rollback to 2.4.3.

The question is -- if b11 have this problem with Update ?

-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the Valentina mailing list