2015-07-23 5 views
5

फेंकने का कारण बनता है मेरे पास एक SQLCompact डेटाबेस है जिसे मैं ADO और C++ का उपयोग करके एक्सेस करने का प्रयास कर रहा हूं। हालांकि डेटाबेस के आकार (300 एमबी, डिफ़ॉल्ट 256 एमबी सीमा से अधिक) के कारण, मुझे कनेक्शन स्ट्रिंग में Max Database Size निर्दिष्ट करना होगा। हालांकि ऐसा करने से .Open(...) फ़ंक्शन फेंकने का कारण बनता है।एडीओ में मैक्स डाटाबेस साइज विकल्प का उपयोग करने से ओपन कमांड

कोड मैं उपयोग कर रहा हूँ:

HRESULT hr = conn.CreateInstance(__uuidof(Connection), NULL); 
conn->Open(L"Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=test.sdf;Max Database Size=512", L"", L"",adConnectUnspecified); 

त्रुटि:

HR: DB_E_ERRORSOCCURRED

Description: "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done."

Message: "IDispatch error #3105"

नोट:

मैं, एक ही कोड का उपयोग कर की कोशिश की है एक छोटे डेटाबेस और Max Database Size को दूर करने के साथ कनेक्शन स्ट्रिंग से और यह अपेक्षित के रूप में काम करता है। Max Database Size जोड़ना फिर से समस्या को फिर से प्रकट करने का कारण बनता है, इसलिए मेरी धारणा है कि यह त्रुटि उत्पन्न करने वाला है।

किसी भी विचार? मैं Provider डिफ़ॉल्ट आकार पर डेटाबेस के साथ कैसे काम कर सकता हूं?

उत्तर

2

आप का उपयोग करना चाहिए:

Provider= Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=test.sdf;ssce:Max Database Size=512 

+0

धन्यवाद (एक ही पासवर्ड और अन्य एसक्यूएल कॉम्पैक्ट विशिष्ट कीवर्ड के लिए लागू होता है), मैं जैसे ही मुझे एक मौका यह कोशिश करता हूँ (ओर ध्यान दें: आपके SQLCompact ब्लॉग पोस्ट और टूल्स अद्भुत हैं, धन्यवाद =)) – Omni

+0

धन्यवाद! मुझे बताएं कि यह आपके लिए काम करता है ... – ErikEJ

+0

यह काम करता है, बहुत बहुत धन्यवाद। – Omni

संबंधित मुद्दे