2011-05-27 12 views
5

के साथ सीडी पर एक एमएस एक्सेस एमडीबी फ़ाइल खोल सकता हूं। एमडी एक्सेस डेटाबेस फ़ाइल के कारण .mdb फ़ाइल खोलने पर एक .ldb लॉक फ़ाइल उत्पन्न करने के कारण मुझे सीडी पर डेल्फी एप्लिकेशन चलाने का प्रयास करने में त्रुटि मिलती है जहां डेटाबेस फ़ाइल भी सीडी पर हैक्या मैं डेल्फी

क्या इस समस्या के लिए कोई समाधान है?

+6

इसे उपयोगकर्ता के TEMP फ़ोल्डर में कॉपी करें और इसे खोलें !? :-) –

उत्तर

14

हां। आपको यह निर्दिष्ट करने की आवश्यकता है कि आप केवल-पढ़ने के लिए डेटाबेस खोल रहे हैं। आप यह निर्दिष्ट नहीं किया है कि कैसे आप एक्सेस डेटाबेस खोल रहे हैं, लेकिन उदाहरण के लिए, यदि आप ADODB COM ऑब्जेक्ट उपयोग कर रहे थे, तो आप कुछ इस तरह करना होगा अपने अपने ADODB कनेक्शन वस्तु:

conn.Provider := 'Microsoft.Jet.Oledb.4.0'; 
    conn.Mode := adShareDenyWrite; 
    conn.Open('database.mdb'); 

या कनेक्शन स्ट्रिंग के भीतर स्वयं:

conn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' + 
     'Data Source=database.mdb;' + 
     'Mode=Share Deny Write'; 
    conn.Open; 
+1

adModeShareDenyWrite दूसरों को लिखने की अनुमति के साथ कनेक्शन खोलने से रोकता है; वर्तमान सत्र के कनेक्शन को केवल पढ़ने के लिए नहीं बनाता है। क्या adoShareDeny कुछ डेल्फी-विशिष्ट निरंतर है जिसका अलग अर्थ है? – HansUp

+0

धन्यवाद - मैं इसे तुरंत –

+3

+1 का परीक्षण करूंगा, [adShareDenyWrite के साथ केवल-पढ़ने वाले मीडिया पर एमडीबी खोलना चाहिए] (http://support.microsoft.com/kb/195475) –