नीचे दिए गए कोड में, pathToNonDatabase
एक साधारण टेक्स्ट फ़ाइल का पथ है, वास्तविक SQL डेटाबेस नहीं। मैं इसका पता लगाने के लिए sqlite3_open
की उम्मीद कर रहा था, लेकिन यह नहीं (db
NULL
नहीं है, और result
SQLITE_OK
है)। तो, यह पता लगाने के लिए कि एक फ़ाइल एक वैध sqlite डेटाबेस नहीं है?कैसे बताएं कि sqlite डेटाबेस फ़ाइल मान्य है या नहीं
sqlite3 *db = NULL;
int result = sqlite3_open(pathToNonDatabase, &db);
if((NULL==db) || (result!=SQLITE_OK)) {
// invalid database
}
"प्राग्मा schema_version;" कई बार त्रुटि "डेटाबेस लॉक" फेंकता है। मैं "pragma quick_check" दूंगा; एक प्रयास –
यदि आपका डेटाबेस लॉक है, तो यह लॉक है। सब कुछ असफल हो जाएगा। लॉक होने पर पुनः प्रयास करें। :) –
आप सही हैं। डेटाबेस लॉक होने पर सब कुछ विफल हो जाता है। यहां तक कि चयन करता है। मेरे मामले में मैं यह निर्धारित करना चाहता था कि फ़ाइल एक स्क्लाइट 3 डेटाबेस था या नहीं। अगर मुझे "डेटाबेस लॉक किया गया है" त्रुटि मिलती है तो मुझे लगता है कि यह फ़ाइल सुरक्षित है कि फ़ाइल एक स्क्लाइट 3 डेटाबेस है। –