2008-08-13 10 views
3

Ich habe einige SQL Server DTS-Pakete, die Daten aus einer FoxPro-Datenbank importieren. Das funktionierte bis vor kurzem. Jetzt bombardiert das Skript, das Daten aus einer der FoxPro-Tabellen importiert, ungefähr 470.000 Datensätze in den Import. Ich ziehe nur die Daten in eine Tabelle mit Nullable-Varchar-Feldern, also denke ich, dass es ein seltsames/korruptes Datenproblem sein muss.Welche FoxPro-Datentools können verwendet werden, um beschädigte Daten zu finden?

Mit welchen Tools würden Sie ein Problem wie dieses aufspüren?

FYI, das ist der Fehler Ich erhalte:

Daten für Quellspalte 1 ('field1') ist nicht verfügbar. Ihr Provider verlangt möglicherweise, dass alle Blob-Spalten ganz rechts in der Quellenergebnismenge liegen.

In dieser Tabelle sollten keine BLOB-Spalten enthalten sein.


Danke für die Vorschläge. Ich weiß nicht, ob es ein Korruptionsproblem ist. Ich habe gerade angefangen, FoxPro von meinem MSDN-Abonnement herunterzuladen, also werde ich sehen, ob ich den Tisch öffnen kann. SSRS öffnet den Tisch, er würgt nur, bevor er alle Datensätze durchsucht. Ich versuche nur herauszufinden, mit welchem ​​Datensatz es ein Problem hat.

Antwort

4

Cmrepair ist ein ausgezeichnetes Freeware-Tool beschädigte DBF-Dateien zu reparieren.

1

Meine Firma verwendet Foxpro, um ziemlich viele Daten zu speichern ... Nach meiner Erfahrung ist die Datenbeschädigung sehr offensichtlich, da die Tabelle überhaupt nicht geöffnet wird. Hast du eine Kopie von foxpro, um den Tisch zu öffnen?

0

@Lance:

wenn Sie Zugriff auf Visual FoxPro Befehlszeilenfenster, Typ:

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 

Danach tun, die Struktur der Tabelle muss gültig ve, wenn Sie Felder sehen möchten mit ungültigen Daten, können Sie versuchen:

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 

usw.

1

bei 470.000 recor ds möchten Sie vielleicht überprüfen, um zu sehen, ob Sie sich der 2-Gigabyte-Grenze bei FoxPro-Tabellengröße nähern. Wie ich es verstehe, können die Platten immer noch da sein, aber nach dem 2 Gig-Punkt unzugänglich werden.

0

Verwenden Sie Reparatur-Datenbanken von meiner Website (www.shershahsoft.com) kostenlos (und wird immer frei sein).

Ich habe dieses Programm entworfen, um beschädigte Foxpro/FoxBase/DBase-Dateien zu reparieren. Das Programm ist sehr schnell. Es repariert 1 GB Tabelle in weniger als einer Minute.

Sie können Dateien und Ordner dem Programm zuweisen. Wenn Sie das Programm starten, werden alle beschädigten Dateien markiert und durch Klicken auf die Schaltfläche Reparieren oder Überprüfen und Reparieren werden alle beschädigten Dateien repariert.Darüber hinaus erstellt es Ordner "CorruptData" in den Ordnern, in denen die tatsächlichen Daten vorhanden sind, und speichert Kopien der beschädigten Dateien dort.

Eine Sache zu beachten, immer Windows CheckDsk auf den Laufwerken, auf denen Sie die Dateien speichern. Ursache Wenn Datensätze in eine Tabelle kopiert werden und ein Stromausfall auftritt, gibt es verlorene Cluster, die Windows während CheckDsk in Dateien konvertiert. Danach erledigen die RepairDatabases die Arbeit für Sie.

Ich habe viele bezahlte und kostenlose Programme verwendet, die Tabellen reparieren, aber alle solche Programme hinterlassen zusätzliche Einträge in den Tabellen mit Embiguit-Zeichen (und sie sind auch zeitaufwendig). Der Programmierer muss solche Datensätze manuell finden und löschen. Aber Reparatur-Datenbanken tatsächlich die ursprünglichen Datensätze wiederherstellen, benötigen Sie keine weiteren Maßnahmen. Die einzige Aktion, die Sie benötigen, ist das Neuindizieren Ihrer Dateien.

Im Reparaturprozess erscheint manchmal der Dialog Datei öffnen, der nach der kompakten Indexdatei für eine Tabelle mit Indizes sucht. Sie können den Dialog an dieser Stelle abbrechen, die Tabelle wird repariert, Sie müssen die Datei jedoch später neu indizieren. (Dieser Dialog wird möglicherweise mehrmals angezeigt, abhängig von der Anzahl der beschädigten Indizes.)