निर्माण के दौरान कोई वर्ण सेट निर्दिष्ट नहीं किया गया था, तो डेटाबेस के लिए डिफ़ॉल्ट वर्ण सेट वर्ण सेट NONE
है, इंटरबेस 6.0 डेटा परिभाषा मार्गदर्शिका के पृष्ठ 47 देखें (documentation section फ़ायरबर्ड वेबसाइट के) में उपलब्ध है। फ़ायरबर्ड (शायद इंटरबेस के निर्माण के बाद से) से यह वही तरीका रहा है और अभी भी मौजूदा संस्करणों पर लागू होता है। हालांकि, फ़ायरबर्ड 2.5 के तहत जब एक डिफ़ॉल्ट वर्ण सेट के बिना डेटाबेस बनाया जाता है, तो RDB$CHARACTER_SET_NAME
का मान NONE
होगा। मुझे यकीन नहीं है कि यह पिछले संस्करणों में अलग था, तो मेरा अनुमान अभी भी NONE
डिफ़ॉल्ट रूप से उपयोग करेगा, भले ही यह NULL
की रिपोर्ट करता हो।
आप सुनिश्चित हो करना चाहते हैं, तो आप बस एक वर्ण सेट विनिर्देश के बिना एक CHAR
या VARCHAR
स्तंभ के साथ एक बुनियादी तालिका बना सकते हैं, और फिर डिफ़ॉल्ट निर्धारित करने के लिए निम्न क्वेरी का उपयोग करें:
SELECT a.RDB$FIELD_NAME, a.RDB$RELATION_NAME,
b.RDB$CHARACTER_SET_ID, c.RDB$CHARACTER_SET_NAME
FROM RDB$RELATION_FIELDS a
INNER JOIN RDB$FIELDS b
ON b.RDB$FIELD_NAME = a.RDB$FIELD_SOURCE
INNER JOIN RDB$CHARACTER_SETS c
ON c.RDB$CHARACTER_SET_ID = b.RDB$CHARACTER_SET_ID
WHERE RDB$RELATION_NAME = 'TABLE_NAME'
आप कर सकते हैं किसी भी ((VAR)CHAR
) फ़ील्ड बीटीडब्ल्यू के चरित्र सेट को खोजने के लिए इसका उपयोग करें।
कैरेक्टर सेट NONE
का अर्थ है कि कोई चरित्र सेट धारणा नहीं है, इसलिए आप किसी भी वर्णमाला में डेटा संग्रहीत कर सकते हैं। हालांकि आप इसे उस कॉलम पर संग्रहीत या तुलना नहीं कर सकते जिसमें स्पष्ट वर्ण सेट है (शायद चरित्र सेट OCTETS
को छोड़कर, इसके बारे में निश्चित नहीं है)।
यदि आप NONE
का उपयोग करते हैं तो आपको यह सुनिश्चित करना होगा कि आप डेटाबेस से कनेक्ट करते समय हमेशा एक ही कनेक्शन वर्ण सेट का उपयोग करें या यदि आप एक चरित्र चरित्र सेट के रूप में वर्ण सेट NONE
का उपयोग करते हैं, तो आपका एप्लिकेशन, ड्राइवर, एक्सेस घटक या प्रोग्रामिंग भाषा हमेशा एक ही एन्कोडिंग का उपयोग करती है, अन्यथा आपको लिप्यंतरण समस्याएं मिलेंगी (वर्ण एन्कोडिंग समस्याएं)।
NONE
का उपयोग कर कनेक्शन चरित्र सेट में अतिरिक्त समस्याएं हैं। उदाहरण के लिए कॉलम का डेटा हमेशा के रूप में भेजा जाएगा, और के रूप में संग्रहीत किया जाएगा, सिवाय इसके कि कॉलम के वर्ण सेट में बाइट संयोजन की अनुमति नहीं है। असल में इसका मतलब है कि डेटाबेस को उसी भाषा वातावरण में इस्तेमाल किया जाना चाहिए जिस पर इसे बनाया गया था।
सामान्य रूप से डिफ़ॉल्ट चरित्र सेट के बारे में स्पष्ट होना बेहतर होता है, जब तक आप नहीं जानते कि आप क्या कर रहे हैं।