Erlang 21 - 2. Getting started

2 शुरू हो रहा है




erlang

2 शुरू हो रहा है

2.1 चीजों को स्थापित करना

जैसा कि एरलांग ODBC एप्लिकेशन थर्ड पार्टी उत्पादों पर निर्भर है, कुछ प्रशासनिक चीजें हैं जिन्हें करने से पहले आपको चीजों को चलाने और चलाने की आवश्यकता होती है।

  • पहली चीज जो आपको करने की ज़रूरत है, यह सुनिश्चित करना है कि आपके पास उस डेटाबेस के लिए ओडीबीसी ड्राइवर स्थापित है जिसे आप एक्सेस करना चाहते हैं। दोनों क्लाइंट मशीन जहां आप अपने एरलांग नोड को चलाने की योजना बनाते हैं और डेटाबेस को चलाने वाली सर्वर मशीन को ओडीबीसी ड्राइवर की आवश्यकता होती है। (कुछ मामलों में क्लाइंट और सर्वर एक ही मशीन हो सकते हैं)।
  • दूसरे आपको उचित मूल्यों के लिए पर्यावरण चर और पथ निर्धारित करने की आवश्यकता हो सकती है। यह विभिन्न ओएस, डेटाबेस और ओडीबीसी ड्राइवरों के बीच बहुत भिन्न हो सकता है। यह तीसरे पक्ष के उत्पाद से संबंधित एक कॉन्फ़िगरेशन समस्या है और इसलिए हम आपको इस गाइड में एक मानक समाधान नहीं दे सकते हैं।
  • Erlang ODBC एप्लिकेशन में Erlang और C कोड दोनों होते हैं। C कोड को कमर्शियल बिल्ड में विंडोज़, सोलारिस और लिनेक्स (SLES10) के लिए एक पूर्व-संचालनीय निष्पादन के रूप में दिया जाता है। ओपन सोर्स डिस्ट्रीब्यूशन में इसे उसी तरह से बनाया गया है जैसे कि अन्य सभी एप्लिकेशन कॉन्फिगर करते हैं और बनाते हैं। आप अपने ODBC पुस्तकालयों के लिए पथ प्रदान करना चाह सकते हैं --with-odbc = PATH का उपयोग करके।
ध्यान दें

Erlang ODBC एप्लिकेशन को लिनक्स, विंडोज 2000, विंडोज एक्सपी और एनटी सहित सभी यूनिक्स बोलियों पर चलना चाहिए। लेकिन वर्तमान में यह केवल Solaris, Windows 2000, Windows XP और NT के लिए परीक्षण किया गया है।

2.2 Erlang API का उपयोग करना

Erlang खोल के भीतर निम्नलिखित संवाद Erlang ODBC इंटरफ़ेस की कार्यक्षमता को दिखाता है। उदाहरण में इस्तेमाल की गई तालिका में वास्तविकता में मौजूद किसी भी चीज की कोई प्रासंगिकता नहीं है, यह सिर्फ एक सरल उदाहरण है। डेटाबेस के रूप में sqlserver 7.0 with servicepack 1 का उपयोग कर उदाहरण बनाया गया था और संस्करण sqlserver साथ sqlserver लिए ODBC ड्राइवर।

1 > odbc:start().
     ok    

डेटाबेस से कनेक्ट करें

2 > {ok, Ref} = odbc:connect("DSN=sql-server;UID=aladdin;PWD=sesame", []).
     {ok,<0.342.0>}    

एक तालिका बनाएं

3 > odbc:sql_query(Ref, "CREATE TABLE EMPLOYEE (NR integer,
     FIRSTNAME  char varying(20), LASTNAME  char varying(20), GENDER char(1),
     PRIMARY KEY(NR))").
     {updated,undefined}    

कुछ डेटा डालें

4 > odbc:sql_query(Ref, "INSERT INTO EMPLOYEE VALUES(1, 'Jane', 'Doe', 'F')").
     {updated,1}    

कॉलम के लिए निर्धारित किए गए डेटाबेस को किस प्रकार का डेटा देखें उम्मीद है कि यह आश्चर्य की बात नहीं है, कुछ समय हो सकता है! ये डेटा प्रकार हैं जिनका उपयोग आपको एक पैरामीटर क्वेरी के लिए करना चाहिए।

5 > odbc:describe_table(Ref, "EMPLOYEE").
     {ok, [{"NR", sql_integer},
           {"FIRSTNAME", {sql_varchar, 20}},
           {"LASTNAME", {sql_varchar, 20}}
           {"GENDER", {sql_char, 1}}]}

एक बार में कई पंक्तियों को सम्मिलित करने के लिए एक पैरामीटर क्वेरी का उपयोग करें।

6 > odbc:param_query(Ref,"INSERT INTO EMPLOYEE (NR, FIRSTNAME, "
                 "LASTNAME, GENDER) VALUES(?, ?, ?, ?)",
                  [{sql_integer,[2,3,4,5,6,7,8]},
                   {{sql_varchar, 20},
                            ["John", "Monica", "Ross", "Rachel",
                            "Piper", "Prue", "Louise"]},
                  {{sql_varchar, 20},
                            ["Doe","Geller","Geller", "Green",
                             "Halliwell", "Halliwell", "Lane"]},
                  {{sql_char, 1}, ["M","F","M","F","F","F","F"]}]).
     {updated, 7}

तालिका कर्मचारी के सभी डेटा प्राप्त करें

7> odbc:sql_query(Ref, "SELECT * FROM EMPLOYEE").
   {selected,["NR","FIRSTNAME","LASTNAME","GENDER"],
         [{1,"Jane","Doe","F"},
          {2,"John","Doe","M"},
          {3,"Monica","Geller","F"},
          {4,"Ross","Geller","M"},
          {5,"Rachel","Green","F"},
          {6,"Piper","Halliwell","F"},
          {7,"Prue","Halliwell","F"},
          {8,"Louise","Lane","F"}]]}     

एक परिणाम सेट को पूरी तालिका EMPLOYEE के कनेक्शन से संबद्ध करें। परिणाम सेट में पंक्तियों की संख्या वापस आ गई है।

8 > odbc:select_count(Ref, "SELECT * FROM EMPLOYEE").
     {ok,8}     

आप हमेशा आगे का उपयोग करके परिणाम सेट अनुक्रमिक पार कर सकते हैं

9 > odbc:next(Ref).
     {selected,["NR","FIRSTNAME","LASTNAME","GENDER"],[{1,"Jane","Doe","F"}]}
10 > odbc:next(Ref).
     {selected,["NR","FIRSTNAME","LASTNAME","GENDER"],[{2,"John","Doe","M"}]}

यदि आपका ड्राइवर स्क्रॉल करने वाले कर्सर का समर्थन करता है, तो आपके पास थोड़ी अधिक स्वतंत्रता है, और इस तरह की चीजें कर सकते हैं।

11 > odbc:last(Ref).
     {selected,["NR","FIRSTNAME","LASTNAME","GENDER"],[{8,"Louise","Lane","F"}]}    
12 > odbc:prev(Ref).
     {selected,["NR","FIRSTNAME","LASTNAME","GENDER"],[{7,"Prue","Halliwell","F"}]}    
13 > odbc:first(Ref).
     {selected,["NR","FIRSTNAME","LASTNAME","GENDER"],[{1,"Jane","Doe","F"}]}        
14 > odbc:next(Ref).
     {selected,["NR","FIRSTNAME","LASTNAME","GENDER"],[{2,"John","Doe","M"}]}

सभी महिला कर्मचारियों के लिए FIRSTNAME और NR फ़ील्ड को प्राप्त करें

15 > odbc:sql_query(Ref, "SELECT FIRSTNAME, NR FROM EMPLOYEE WHERE GENDER = 'F'").
    {selected,["FIRSTNAME","NR"],
         [{"Jane",1},
          {"Monica",3},
          {"Rachel",5},
          {"Piper",6},
          {"Prue",7},
          {"Louise",8}]}     

सभी महिला कर्मचारियों के लिए फ़ील्ड FIRSTNAME और NR लाएं और उन्हें फ़ील्ड FIRSTNAME पर सॉर्ट करें।

16 > odbc:sql_query(Ref, "SELECT FIRSTNAME, NR FROM EMPLOYEE WHERE GENDER = 'F'
     ORDER BY FIRSTNAME").
   {selected,["FIRSTNAME","NR"],
         [{"Jane",1},
          {"Louise",8},
          {"Monica",3},
          {"Piper",6},
          {"Prue",7},
          {"Rachel",5}]}

एक परिणाम सेट को संबद्ध करें जिसमें कनेक्शन के लिए सभी महिला कर्मचारियों के लिए FIRSTNAME और NR फ़ील्ड शामिल हैं। परिणाम सेट में पंक्तियों की संख्या वापस आ गई है।

17 > odbc:select_count(Ref, "SELECT FIRSTNAME, NR FROM EMPLOYEE WHERE GENDER = 'F'").
     {ok,6}    

जब ड्राइवर स्क्रॉल करने योग्य कर्सर का समर्थन करता है, तो परिणाम के कुछ हिस्सों को प्राप्त करने के कुछ और तरीके सेट होते हैं। ध्यान दें कि अगला स्क्रॉल किए गए कर्सर के समर्थन के बिना भी काम करेगा।

18 > odbc:select(Ref, {relative, 2}, 3).
   {selected,["FIRSTNAME","NR"],[{"Monica",3},{"Rachel",5},{"Piper",6}]}
19 > odbc:select(Ref, next, 2).
     {selected,["FIRSTNAME","NR"],[{"Prue",7},{"Louise",8}]}
20 > odbc:select(Ref, {absolute, 1}, 2).
     {selected,["FIRSTNAME","NR"],[{"Jane",1},{"Monica",3}]}
21 > odbc:select(Ref, next, 2).
   {selected,["FIRSTNAME","NR"],[{"Rachel",5},{"Piper",6}]}
22 > odbc:select(Ref, {absolute, 1}, 4). 
     {selected,["FIRSTNAME","NR"],
               [{"Jane",1},{"Monica",3},{"Rachel",5},{"Piper",6}]}

एक पैरामीटर क्वेरी का उपयोग करके चयन करें।

23 > odbc:param_query(Ref, "SELECT * FROM EMPLOYEE WHERE GENDER=?",
     [{{sql_char, 1}, ["M"]}]).
     {selected,["NR","FIRSTNAME","LASTNAME","GENDER"],
               [{2,"John", "Doe", "M"},{4,"Ross","Geller","M"}]} 

तालिका EMPLOYEE हटाएं।

24 > odbc:sql_query(Ref, "DROP TABLE EMPLOYEE").
     {updated,undefined}

कनेक्शन बंद करें।

25 > odbc:disconnect(Ref).
     ok

एप्लिकेशन को बंद करें।

26 > odbc:stop().
   =INFO REPORT==== 7-Jan-2004::17:00:59 ===
   application: odbc
   exited: stopped
   type: temporary

   ok