2011-05-29 8 views
6

मैं Erlang में एक PostgreSQL डेटाबेस तक पहुंचना चाहता हूं। मैंने epgsql ड्राइवर डाउनलोड किया, यह कुछ निर्देशिकाएं और फाइलें थीं, लेकिन मुझे समझ में नहीं आता कि इसका उपयोग कैसे किया जाए।epgsql ड्राइवर का उपयोग कर Erlang में PostgreSQL से कैसे कनेक्ट करें?

मैं एक Erlang कार्यक्रम कैसे लिख सकता हूँ और एक PostgreSQL डेटाबेस का उपयोग करने के लिए epgsql ड्राइवर का उपयोग कर सकते हैं?

मैंने एक नया फ़ोल्डर बनाया और ड्राइवरों में src/ से सभी फ़ाइलों की प्रतिलिपि बनाई और pgsql.hrl मेरे नए फ़ोल्डर में कॉपी की।

-module(dbtest). 
-export([dbquery/0]). 

dbquery() -> 
    {ok,C} = pgsql:connect("localhost", "postgres", "mypassword", 
            [{database, "mydatabase"}]), 
    {ok, Cols, Rows} = pgsql:equery(C, "select * from mytable"). 

तब मैं erl शुरू कर दिया और c(pgsql). और c(dbtest) साथ मॉड्यूल संकलित: तो फिर मैं एक साधारण परीक्षण कार्यक्रम बनाया। लेकिन तब जब मैं dbtest:dbquery(). exeute मैं इस त्रुटि मिलती है:

** exception error: undefined function pgsql:connect/4 
    in function dbtest:dbquery/0 

कैसे मैं Erlang का उपयोग कर एक PostgreSQL डेटाबेस से कनेक्ट कर सकते हैं पर कोई सुझाव?

+1

नहीं एक सीधा जवाब का उपयोग करने की सलाह देते हैं, लेकिन - rebar के बारे में पढ़ा। यह वर्णन करता है कि अपने आवेदन और उनकी निर्भरताओं को व्यवस्थित कैसे करें। – W55tKQbuRu28Q4xv

उत्तर

6

रीबार उपयोग करने के लिए एक अच्छा उपकरण है लेकिन, मैं यह पता है कि कैसे अपनी परियोजना संरचित किया जाना चाहिए ताकि आप बता सकते हैं जब कोई बात बिगड़ जाए कि क्या करना है अच्छा है खोजने हूँ। deps/epqsql में

/deps/epqsql/ 
/src/dbtest.erl 
/ebin 

फिर सीडी और make चलाने पुस्तकालय का निर्माण: इस तरह से अपनी परियोजना के आयोजन का प्रयास करें।

आपका dbtest.erl फ़ाइल भी स्पष्ट रूप से पुस्तकालय का उल्लेख होना चाहिए, शीर्ष के निकट इस जोड़ें:

-include_lib("deps/epgsql/include/pgsql.hrl"). 

आप शायद एक Makefile (या rebar) जब आप परिवर्तन करते हैं, लेकिन वह अपने कोड संकलित का उपयोग करना चाहेंगे, अभी चीजों को संकलित करने के लिए इसे आजमाएं: erlc -I deps/epqsql/ebin -o ebin src/dbtest.erlerl -pz deps/epqsql/ebin/ ebin/:

जब परीक्षण, सुनिश्चित करें कि आपके लोड पथ सही ढंग से स्थापित कर रहे हैं, की कोशिश करते हैं। जब erl कंसोल लोड हो जाता है, तो dbtest:dbquery(). आज़माएं और देखें कि क्या होता है!

मैं अपने मशीन पर Postgresql सेटअप नहीं है, लेकिन मैं इस सेटअप के साथ अधिक उचित देख त्रुटियों प्राप्त करने में सक्षम था।

+0

मैं हो रही है मेकअप: rebar: आदेश नहीं मिला मेकअप: *** [संकलन] त्रुटि 127. चेक http://stackoverflow.com/questions/33485205/how-to-build-and-use-epgsql-erlang –

संबंधित मुद्दे