Ce instrumente de date FoxPro pot folosi pentru a găsi date corupte?

Am câteva pachete DTS SQL Server care importă date dintr-o bază de date FoxPro. Acest lucru a funcționat bine până de curând. Acum, scriptul care importa date dintr-unul din tabelele FoxPro bombardează aproximativ 470.000 de înregistrări în import. Tocmai trag datele într-un tabel cu câmpuri varchar nullabile, așa că mă gândesc că trebuie să fie o problemă de date ciudată/coruptă.

Ce instrumente ați folosi pentru a detecta o problemă de genul asta?

FYI, aceasta este eroarea pe care o primesc:

Datele pentru coloana sursă 1 ("câmp1") nu sunt disponibile. Furnizorul dvs. poate solicita ca toate coloanele Blob să fie la dreapta în setul de rezultate sursă.

În acest tabel nu ar trebui să existe nici o coloană.


Vă mulțumim pentru sugestii. Nu știu dacă este o problemă de corupție. Tocmai am început să descarc FoxPro din Abonamentul meu MSDN, așa că am să văd dacă pot deschide masa. SSRS deschide masa, ci doar se îndoaie înainte de a trece prin toate înregistrările. Încerc doar să-mi dau seama ce înregistrare are o problemă.

0
fr hi bn

5 răspunsuri

Cmrepair is an excellent freeware utility to repair corrupted .DBF files.

0
adăugat

@Lance:

dacă aveți acces la fereastra liniei de comandă Visual FoxPro, tastați:

SET TABLEVALIDATE 11
USE "YourTable" EXCLUSIVE    && If the table is damaged VFP must display an error here
PACK    && To reindex the table and deleted "marked" records
PACK MEMO    && If you have memo fields

După aceasta, structura tabelului trebuie să fie valabilă, dacă doriți să vedeți câmpuri cu date nevalide, puteți încerca:

SELECT * FROM YourTable WHERE EMPTY(YourField)   && All records with YourField empty
SELECT * FROM YourTable WHERE LEN(YourMemoField) > 200   && All records with a long memo field, there can be corrupted data

etc.

0
adăugat

Ați încercat să scrieți un mic program care doar copiază datele existente într-un nou tabel?

De asemenea,

http://fox.wikis.com/wc.dll?Wiki~TableCorruptionRepairTools~ VFP

0
adăugat

La 470.000 de înregistrări, vă recomandăm să verificați dacă vă apropiați de limita de 2 gigabyte pentru dimensiunea tabelului FoxPro. După cum am înțeles, înregistrările pot fi încă acolo, dar devin inaccesibile după punctul de 2 puncte.

0
adăugat

Utilizați baze de date de reparare de pe site-ul meu (www.shershahsoft.com) GRATUIT (și va fi întotdeauna GRATUIT).

Am proiectat acest program pentru a repara fișierele Foxpro/FoxBase/Dbase deteriorate. Programul este foarte rapid. Va repara masa de 1 GB în mai puțin de un minut.

Puteți să atribuiți fișierelor și dosarelor programului. Pe măsură ce porniți programul, acesta va marca toate fișierele corupte și, făcând clic pe butonul de reparare sau verificare și reparație, va repara toate fișierele corupte. În plus, va crea un dosar "CorruptData" în dosarele unde există date reale și va păstra copii ale fișierelor corupte acolo.

Un lucru pe care să-l păstrați în minte, rulați întotdeauna Windows CheckDsk pe unitățile în care stocați fișierele. Cauza, atunci când înregistrările sunt copiate la o masă și eșecul de alimentare apare, există clustere pierdute pe care Windows le transformă în fișiere în timpul CheckDsk. După aceea, bazele de reparare va face treaba pentru dvs.

Am folosit numeroase programe plătite și gratuite care repară mese, dar toate aceste programe lasă înregistrări suplimentare în tabelele cu caractere emiguite (și consumă prea mult timp). Programatorul trebuie să găsească și să ștergă astfel de înregistrări manual. Dar bazele de reparare de fapt recuperează înregistrările originale, nu mai aveți nevoie de alte acțiuni. Singura acțiune de care aveți nevoie este reindexarea fișierelor.

În procesul de reparare apare de câteva ori File Open Dialog care cere să se găsească fișierul index index compact pentru un tabel cu indecși. Puteți face clic pe anulați dialogul din acel moment, tabela va fi reparată, dar va trebui să reindexați fișierul mai târziu. (acest dialog poate apărea de mai multe ori, în funcție de numărul de indici corupți.)

0
adăugat