VFP 9 के साथ काम करते हुए, मैंने group (DBF में एक कॉलम) का उपयोग करके एक DBF फ़ाइल को अनुक्रमित किया है

 INDEX ON group TO group1

और रिकॉर्ड सही क्रम में हैं। लेकिन फिर, जब भी मैं DBF को बंद और फिर से खोलता हूं, अनुक्रमण खो जाता है (group द्वारा कोई आदेश नहीं)। मुझे अपने group.idx और dbf के समान फ़ोल्डर पर एक .CDX फ़ाइल मिली है, और ऐसा लगता है कि यह DBF को एक संरचना दे रहा है, लेकिन मुझे नहीं पता कि इसे कैसे बदला जाए या इसे कैसे देखा जाए।

इस समस्या को हल करने के लिए मैंने सीडीएक्स फ़ाइल को मिटा दिया (निश्चित रूप से एक त्रुटि पॉप-अप क्योंकि यह .cdx नहीं ढूंढ सका) और अनुक्रमित डीबीएफ रखने के लिए COPY TO फ़ंक्शन का उपयोग किया लेकिन यह समस्या का वास्तविक समाधान नहीं है (जो एक मंच में उल्लिखित समाधान है, लेकिन यह मेरे लिए सबसे अच्छा तरीका नहीं लगता है)। मैंने डेटाबेस को बंद करने से ठीक पहले, अंत में PACK फ़ंक्शन का उपयोग करने का भी प्रयास किया है, लेकिन डेटासेट को अनुक्रमित रखने के लिए काम नहीं किया।

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

अतिरिक्त प्रश्न: आमतौर पर जब मैं इंडेक्स करता हूं तो मैं बनाई गई आईडीएक्स फ़ाइल को एक नाम देता हूं लेकिन समान डीबीएफ के साथ काम करते समय मैं एक ही आईडीएक्स नाम के साथ अलग-अलग टेबल पर कोडिंग और इंडेक्स दोहराता हूं (इसलिए मैं . idx हर बार, यह सोचकर कि इसका अब कोई उपयोग नहीं है), लेकिन मैं वास्तव में नहीं जानता कि क्या इससे मुझे भविष्य में समस्या हो सकती है।

अपडेट: हालांकि मैं इंडेक्सिंग और ऑर्डर कमांड का उपयोग करके किसी विशिष्ट DBF के लिए सीधे समस्या का समाधान नहीं कर सका, मैंने COPY TO कमांड का उपयोग किया और फिर मैन्युअल रूप से प्रतिस्थापित किया पुराने के साथ नया डीबीएफ।

यह मेरे जैसे भिखारियों के लिए रुचिकर हो सकता है: http://www2.hkedcity.net/sch_files/a/tps/tps-comp/visitor_cabinet/123570/db-ch05.pdf

1
AR_Domingo 11 सितंबर 2018, 18:35

2 जवाब

सबसे बढ़िया उत्तर

आमतौर पर IDX की अनुशंसा नहीं की जाती है। सीडीएक्स (कंपाउंड इंडेक्स) प्राप्त करने के लिए इस थोड़े अलग सिंटैक्स का उपयोग करें ("TO" के बजाय "TAG"):

INDEX ON group TAG group1

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

3
Steve 12 सितंबर 2018, 00:25

INDEX ON group TAG group1 कमांड का उपयोग करने के अलावा, जब आप (फिर से) फ़ाइल खोलते हैं, तो आपको इंडेक्स का चयन करने की आवश्यकता होती है। यह दो तरीकों में से एक में किया जा सकता है।

दोनों में से एक

USE filename
SET ORDER TO group1

या

USE filename ORDER TAG group1
2
Herb Wolfe 12 सितंबर 2018, 18:28