2012-06-08 16 views
6

प्राप्त करने के लिए मैं ibpp लाइब्रेरी का उपयोग कर अपना फ़ायरबर्ड डेटाबेस ब्राउज़र लिख रहा हूं। क्या SQL तरीका का उपयोग करके तालिका परिभाषा प्राप्त करने का कोई तरीका है?फायरबर्ड एसक्यूएल स्टेटमेंट टेबल डेफिनिशन

उत्तर

9

फायरबर्ड स्कीमा का समर्थन नहीं करता है, इसलिए कोई जानकारी नहीं है कि आप वह जानकारी प्राप्त कर सकें।

निकटतम बात मालिक है, जो आप RDB$RELATIONS

संपादित

ए 'स्कीमा "क्वेरी करने एक डेटाबेस के अंदर एक नाम का स्थान प्राप्त कर सकते हैं हो सकता है। जाहिर है आप टेबल परिभाषा की तलाश में हैं, स्कीमा नहीं।

आप RDB $ मैदान और RDB $ RELATION_FIELDS पूछताछ की एक तालिका के colums और उनके डेटाटाइप्स प्राप्त कर सकते हैं:

select rf.rdb$relation_name as table_name, 
     rf.rdb$field_name as column_name, 
     case f.rdb$field_type 
     when 14 then 'CHAR' 
     when 37 then 'VARCHAR' 
     when 8 then 'INTEGER' 
     ... 
     end as data_type, 
     f.rdb$field_length, 
     f.rdb$field_scale 
from rdb$fields f 
    join rdb$relation_fields rf on rf.rdb$field_source = f.rdb$field_name 
where rf.rdb$relation_name = 'FOOBAR' 

डेटाप्रकार स्तंभ RDB $ क्षेत्र में एक पूर्णांक के रूप में संग्रहीत किया जाता है। उस कॉलम में मानों की पूरी सूची इंटरबेस संदर्भ मार्गदर्शिका में प्रलेखित है: http://www.ibphoenix.com/files/60LangRef.zip (जैसा कि सिस्टम सिस्टम में सभी अन्य कॉलम और अन्य सभी सिस्टम टेबल भी हैं)। आईबी 6.0 (फायरबर्ड मैनुअल एक ** रील * गड़बड़ है)

के बाद से सिस्टम टेबल में कोई बदलाव आया है, यह देखने के लिए आपको सभी अद्यतन मार्गदर्शिकाओं से गुजरना पड़ सकता है
संबंधित मुद्दे