दूषित डेटा खोजने के लिए मैं क्या फॉक्सप्रो डेटा टूल्स का उपयोग कर सकता हूं?

मेरे पास कुछ SQL सर्वर डीटीएस पैकेज हैं जो फॉक्सप्रो डेटाबेस से डेटा आयात करते हैं। यह हाल ही में ठीक काम कर रहा था। अब स्क्रिप्ट जो फॉक्सप्रो टेबल में से किसी एक से डेटा आयात करती है, आयात में लगभग 470,000 रिकॉर्ड बम करती है। मैं सिर्फ डेटा को खींचने वाले वर्चर्स फ़ील्ड वाले टेबल में खींच रहा हूं, इसलिए मुझे लगता है कि यह एक अजीब/भ्रष्ट डेटा समस्या होनी चाहिए।

इस तरह की समस्या को ट्रैक करने के लिए आप किस टूल का उपयोग करेंगे?

एफवाईआई, यह वह त्रुटि है जो मुझे मिल रही है:

स्रोत कॉलम 1 ('field1') के लिए डेटा उपलब्ध नहीं है। आपके प्रदाता को यह आवश्यक हो सकता है कि सभी ब्लॉब कॉलम स्रोत परिणाम सेट में सबसे सही हों।

इस तालिका में कोई ब्लॉब कॉलम नहीं होना चाहिए।


सुझावों के लिए धन्यवाद। मुझे नहीं पता कि यह निश्चित रूप से भ्रष्टाचार की समस्या है या नहीं। मैंने बस अपने एमएसडीएन सदस्यता से फॉक्सप्रो डाउनलोड करना शुरू किया, इसलिए मैं देखूंगा कि मैं टेबल खोल सकता हूं या नहीं। एसएसआरएस तालिका खोलता है, यह सिर्फ सभी रिकॉर्ड्स के माध्यम से चलाने से पहले चोक करता है। मैं बस यह पता लगाने की कोशिश कर रहा हूं कि किस रिकॉर्ड में समस्या है।

0
ro fr bn

5 उत्तर

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

0
जोड़ा

@Lance:

अगर आपके पास Visual FoxPro कमांड लाइन विंडो तक पहुंच है, तो टाइप करें:

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

ऐसा करने के बाद, तालिका की संरचना वैध होनी चाहिए, अगर आप अमान्य डेटा वाले फ़ील्ड देखना चाहते हैं, तो आप कोशिश कर सकते हैं:

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

आदि।

0
जोड़ा

क्या आपने एक छोटा प्रोग्राम लिखने की कोशिश की है जो मौजूदा डेटा को एक नई तालिका में कॉपी करता है?

इसके अलावा,

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

0
जोड़ा

470,000 रिकॉर्ड पर आप यह देखने के लिए जांचना चाहेंगे कि क्या आप फॉक्सप्रो टेबल आकार पर 2 गीगाबाइट सीमा तक पहुंच रहे हैं या नहीं। जैसा कि मैं इसे समझता हूं, रिकॉर्ड अभी भी वहां हो सकते हैं, लेकिन 2 गीगा बिंदु के बाद पहुंच से बाहर हो जाते हैं।

0
जोड़ा

मेरी साइट (www.shershahsoft.com) से मरम्मत डेटाबेस का उपयोग मुफ्त में करें (और हमेशा मुफ़्त रहेगा)।

मैंने इस प्रोग्राम को क्षतिग्रस्त फॉक्सप्रो/फॉक्सबेस/डीबेस फाइलों की मरम्मत के लिए डिज़ाइन किया है। कार्यक्रम बहुत जल्दी है। यह एक मिनट से भी कम समय में 1 जीबी टेबल की मरम्मत करेगा।

आप प्रोग्राम में फाइलों और फ़ोल्डरों को संरेखित कर सकते हैं। जैसे ही आप प्रोग्राम शुरू करेंगे, यह सभी दूषित फ़ाइलों को चिह्नित करेगा, और मरम्मत या चेक और मरम्मत बटन पर क्लिक करके, यह सभी दूषित फ़ाइलों की मरम्मत करेगा। इसके अलावा, यह फ़ोल्डर्स में "भ्रष्ट डेटा" फ़ोल्डर बनाएगा जहां वास्तविक डेटा मौजूद है, और वहां भ्रष्ट फाइलों की प्रतियां रखेगी।

ध्यान रखने योग्य एक बात, हमेशा उन फ़ाइलों पर Windows CheckDsk चलाएं जहां आप फ़ाइलों को संग्रहीत करते हैं। कारण, जब किसी तालिका और रिकॉर्ड विफलता के अवसरों पर रिकॉर्ड्स की प्रतिलिपि बनाई जा रही है, तो खोए क्लस्टर मौजूद हैं जो विंडोज चेकस्क के दौरान फ़ाइलों में परिवर्तित हो जाते हैं। उसके बाद, मरम्मत डेटाबेस आपके लिए नौकरी करेगा।

मैंने कई भुगतान और मुक्त कार्यक्रमों का उपयोग किया है जो तालिकाओं की मरम्मत करते हैं, लेकिन ऐसे सभी कार्यक्रम टेबल पर अतिरिक्त अभिलेख छोड़ते हैं जिसमें वेरिगिट पात्र होते हैं (और वे भी समय लेने वाले होते हैं)। प्रोग्रामर को मैन्युअल रूप से ऐसे रिकॉर्ड्स खोजने और हटाने की आवश्यकता है। लेकिन मरम्मत डेटाबेस वास्तव में मूल रिकॉर्ड को पुनः प्राप्त करता है, आपको आगे कोई कार्रवाई करने की आवश्यकता नहीं है। आपको केवल एक ही क्रिया की आवश्यकता है जो आपकी फाइलों को दोबारा जोड़ रहा है।

मरम्मत प्रक्रिया में कुछ बार फ़ाइल ओपन डायलॉग प्रकट होता है जो इंडेक्स के साथ तालिका के लिए कॉम्पैक्ट इंडेक्स फ़ाइल का पता लगाने के लिए कहता है। आप उस बिंदु पर संवाद रद्द करने पर क्लिक कर सकते हैं, तालिका की मरम्मत की जाएगी, हालांकि, आपको बाद में फ़ाइल को फिर से संशोधित करने की आवश्यकता होगी। (यह संवाद भ्रष्ट indeces की संख्या के आधार पर कई बार प्रकट हो सकता है।)

0
जोड़ा