किक्स के लिए मैं एक "स्कीमा दस्तावेज़" टूल लिख रहा हूं जो डेटाबेस में तालिकाओं और रिश्तों का विवरण उत्पन्न करता है। मैं वर्तमान में SQLite के साथ काम करने के लिए इसे shimming कर रहा हूँ।रिक्त तालिका में SQLite कॉलम नाम खोजें
मैं sqlite_master
मेज पर एक प्रश्न के माध्यम से एक SQLite डेटाबेस में सभी तालिकाओं के नाम निकालने के लिए प्रबंधित किया है। प्रत्येक तालिका नाम के लिए, मैं तो एक साधारण
select * from <table name>
क्वेरी बंद आग, तो sqlite3_column_count()
और sqlite3_column_name()
API का उपयोग स्तंभ नाम है, जो मैं आगे sqlite3_table_column_metadata()
को खिलाने के लिए अतिरिक्त जानकारी प्राप्त करने के लिए इकट्ठा करने के लिए। काफी सरल, सही?
समस्या यह है कि यह केवल उन तालिकाओं के लिए काम करता है जो खाली नहीं हैं। यही है, sqlite_column_*()
एपीआई केवल मान्य हैं अगर sqlite_step()
SQLITE_ROW
लौटा दिया गया है, जो खाली सारणी के मामले में नहीं है।
तो सवाल यह है कि, मैं खाली तालिकाओं के लिए कॉलम नाम कैसे खोज सकता हूं? या, आमतौर पर, SQLite में इस प्रकार की स्कीमा जानकारी प्राप्त करने का एक बेहतर तरीका है?
मुझे लगता है कि इस जानकारी वाले कहीं और छिपी हुई sqlite_xxx
तालिका होनी चाहिए, लेकिन अब तक इसे खोजने में सक्षम नहीं है।
सभी को धन्यवाद। मैंने गलती से सोचा कि PRAGMA इंटरफ़ेस केवल 'sqlite3' कमांड लाइन क्लाइंट के लिए था। –