2010-01-13 8 views
5

बस सोच रहा है कि कोई भी erlang-mysql मॉड्यूल (http://code.google.com/p/erlang-mysql-driver/) का उपयोग करने का एक उदाहरण उदाहरण दे सकता है।Erlang mysql उदाहरण

मैं erlang के लिए नया हूँ और मैं कुछ पुरानी लिपियों को कुछ erlang बैच प्रक्रियाओं के साथ बदलने की कोशिश कर रहा हूँ। मैं डीबी से कनेक्ट करने और यहां तक ​​कि एक क्वेरी को पूरा करने में सक्षम हूं, लेकिन मुझे यकीन नहीं है कि मैं परिणामों का उपयोग कैसे करता हूं।

-include("../include/mysql.hrl"). 
... 
mysql:start_link(p1, "IP-ADDRESS", "erlang", "PASSWORD", "DATABASE"), 
Result1 = mysql:fetch(p1, <<"SELECT * FROM users">>), 
io:format("Result1: ~p~n", [Result1]), 
... 

मैं भी एक तैयार बयान है कि मैं भी सिर्फ एक पंक्ति प्राप्त करने के लिए (अगर यह मौजूद है) का उपयोग कर रहा है और पता करने के लिए के रूप में उस पर परिणाम तक पहुंचने का तरीका यह मददगार होगा: यहाँ मैं वर्तमान में क्या है अच्छी तरह से

उत्तर

4

यह mysql.erl की source code में वर्णित है:

आपका परिणाम {data, MySQLRes} हो जाएगा।

FieldInfo = mysql:get_result_field_info(MysqlRes), जहां FieldInfo{Table, Field, Length, Name} टुपल्स की एक सूची है।

AllRows = mysql:get_result_rows(MysqlRes), जहां AllRows सूचियों की एक सूची है, प्रत्येक पंक्ति का प्रतिनिधित्व करते हैं।

+0

धन्यवाद, इस पर एक एडन के रूप में: परिणाम का विश्लेषण करने का सबसे अच्छा तरीका क्या है? कभी-कभी इसका परिणाम 0 पंक्तियों में होगा या कभी-कभी बहुत सारी पंक्तियां होंगी। उस प्रकाश में यदि मुझे ईमेल पता और नाम पकड़ने की आवश्यकता है (उपयोगकर्ता तालिका से, मान लें कि संरचना [आईडी, ईमेल, नाम] है)। इसके लिए कुछ नमूना कोड वास्तव में बहुत अच्छा होगा। – Matt

+1

'[do_sg (ईमेल, नाम) || [_, ईमेल, नाम] <- AllRows] '। बीटीडब्ल्यू अगर आपको आईडी की आवश्यकता नहीं है तो आपको इसकी क्वेरी नहीं करनी चाहिए। – Zed

0

आप, पंक्तियों की गिनती की जाँच करनी चाहिए तो निष्पादित करें:

जैसे: RowLen = erlang: लंबाई (पंक्ति), अगर RowLen> 0 -> {सफलता}; सत्य -> ​​ {विफल, "पंक्ति शून्य है"} अंत।

0

एरलंग/ओटीपी के साथ आने वाले ओडीबीसी मॉड्यूल का उपयोग करने और समस्याओं में चलने का प्रयास करने के बाद, मैं mysql/otp ड्राइवर की अनुशंसा करता हूं। मैंने ओडीबीसी को कुछ ही घंटों में बदल दिया और यह ठीक काम करता है।

उनके पास documentation अच्छा है इसलिए मैं यहां उदाहरण नहीं जोड़ूंगा।