2008-08-13 5 views
3

J'ai certains paquets DTS SQL Server qui importent des données à partir d'une base de données FoxPro. Cela fonctionnait bien jusqu'à récemment. Maintenant, le script qui importe les données de l'une des tables FoxPro bombarde environ 470 000 enregistrements dans l'importation. Je suis juste en train de tirer les données dans une table avec des champs varchar nullable donc je pense que ce doit être un problème de données bizarre/corrompu.Quels outils de données FoxPro puis-je utiliser pour rechercher des données endommagées?

Quels outils utiliseriez-vous pour dépister un problème comme celui-ci?

Pour votre information, c'est l'erreur que je reçois:

données pour la colonne source 1 ('de field1') ne sont pas disponibles. Votre fournisseur peut exiger que toutes les colonnes Blob se trouvent dans le jeu de résultats source.

Il ne devrait pas y avoir de colonnes blob dans cette table.


Merci pour les suggestions. Je ne sais pas si c'est un problème de corruption à coup sûr. Je viens de commencer à télécharger FoxPro à partir de mon abonnement MSDN, donc je vais voir si je peux ouvrir la table. SSRS ouvre la table, il s'étouffe juste avant de parcourir tous les enregistrements. J'essaie juste de déterminer quel disque a un problème.

Répondre

4

Cmrepair est un excellent utilitaire gratuit pour réparer les fichiers DBF corrompus.

1

Mon entreprise utilise Foxpro pour stocker un peu de données ... Dans mon expérience, la corruption de données est très évidente, avec la table ne s'ouvre pas en premier lieu. Avez-vous une copie de foxpro pour ouvrir la table?

0

@Lance:

si vous avez accès à la fenêtre de ligne de commande Visual FoxPro, tapez:

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 

Après avoir fait cela, la structure de la table doit ve valide, si vous voulez voir des champs avec des données non valides, vous pouvez essayer:

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.

1

A 470000 Recor ds vous pourriez vouloir vérifier si vous approchez la limite de 2 gigaoctets sur la taille de la table FoxPro. Si je comprends bien, les disques peuvent toujours être là, mais deviennent inaccessibles après le 2 gig.

0

Utilisez les bases de données de réparation de mon site (www.shershahsoft.com) gratuitement (et sera toujours gratuit).

J'ai conçu ce programme pour réparer les fichiers Foxpro/FoxBase/Dbase endommagés. Le programme est très rapide. Il va réparer 1 Go de table en moins d'une minute.

Vous pouvez attribuer des fichiers et des dossiers au programme. Comme vous démarrez le programme, il marquera tous les fichiers corrompus, et en cliquant sur le bouton Réparer ou Vérifier et réparer, il va réparer tous les fichiers corrompus.En outre, il créera un dossier "CorruptData" dans les dossiers où les données réelles existent, et conservera des copies des fichiers corrompus là. Une chose à garder à l'esprit, toujours exécuter Windows CheckDsk sur les lecteurs où vous stockez les fichiers. En effet, lorsque des enregistrements sont copiés dans une table et qu'une coupure de courant survient, il existe des clusters perdus que Windows convertit en fichiers pendant CheckDsk. Après cela, les RepairDatabases feront le travail pour vous. J'ai utilisé beaucoup de programmes payants et gratuits qui réparent des tables, mais tous ces programmes laissent des enregistrements supplémentaires dans les tables avec des caractères embiguit (et ils prennent aussi beaucoup de temps). Le programmeur doit trouver et supprimer ces enregistrements manuellement. Mais les bases de données de réparation récupèrent réellement les enregistrements originaux, vous n'avez besoin d'aucune autre action. La seule action dont vous avez besoin est de réindexer vos fichiers.

Lors du processus de réparation, il arrive que File Open Dialog apparaisse, demandant de localiser le fichier d'index compact pour une table avec indeces. Vous pouvez cliquer sur Annuler la boîte de dialogue à ce moment-là, la table sera réparée, mais vous devrez réindexer le fichier plus tard. (cette boîte de dialogue peut apparaître plusieurs fois en fonction du nombre d'indeces corrompues.)

Questions connexes