2010-01-17 6 views
5

मैं धीमी तेंदुए (मैकपॉर्ट्स के माध्यम से स्थापित) पर रुबी 1.9 (रूबी 1.9.1p376 (200 9-12-07 संशोधन 26041) [i386-darwin10]) चला रहा हूं।स्नो तेंदुए पर रूबी 1.9 से वेनिला माईएसQL पहुंच

मैं तो स्थापित MacPorts के माध्यम से रूबी MySQL क्लाइंट लाइब्रेरी: स्थापित rb19-mysql

इसका इस्तेमाल करने की कोशिश कर रहा है मैं निम्नलिखित त्रुटि मिलती है:

 
db.rb:4:in `initialize': wrong number of arguments(4 for 0) (ArgumentError) 
    from db.rb:4:in `new' 
    from db.rb:4:in `' 

मेरे कोड:

require 'mysql' 
require 'pp' 

dbh = Mysql.new("localhost", "testuser", "testpass", "test") 
puts "Server version: " + dbh.get_server_info 

ऐसा लगता है कि मुझे यहां कुछ मूलभूत याद आ रही है।

क्या मैंने सही क्लाइंट लाइब्रेरी स्थापित की है? मैं इसे सही तरीके से उपयोग कर रहा हूं? क्या मुझे कुछ अन्य निर्भरताएं याद आ रही हैं?

कोई सराहना करेगा अगर कोई मुझे सही दिशा में इंगित कर सकता है।

धन्यवाद!

+4

"धीमी तेंदुए" मजाक के अंदर एक ओएस एक्स है, या एक टाइपो? यदि यह एक टाइपो है, तो क्या यह एक फ्रायडियन है? :) –

+0

धीमी गलती हिम तेंदुए मेरे लिए पर्याप्त तेज़ है .. वास्तव में टाइपो :) – deepakg

+0

लेकिन यह Win XP से धीमा हो सकता है ... – Jaryl

उत्तर

0

मैंने कभी भी अपने जीवन में रूबी की एक पंक्ति नहीं लिखी है, इसलिए शायद मैं खुद को शर्मिंदा करने जा रहा हूं, लेकिन क्या आपको पहले Mysql प्रारंभ करना नहीं है? मुझे पूरा यकीन है कि फ़ंक्शन से उम्मीद है कि 0 पैरामीटर का अर्थ है कि यह अभी तक मौजूद नहीं है।

पैकेज आप का उल्लेख का परीक्षण फ़ाइल में (तुम मुझे उत्सुक मिल गया), मैं निम्न पंक्ति देखें:

assert_nothing_raised{@m = Mysql.init} 

अपने वाक्य रचना सही प्रतीत हो रहा है फिर भी,। एक ही परीक्षण फ़ाइल

assert_nothing_raised{@m = Mysql.new(@host, @user, @pass, @db, @port, @sock, @flag)} 

से मैं तुम्हें एक Mysql.init() पहले क्या करने की जरूरत ग्रहण करेंगे।

यदि मैं गलत हूं, तो मुझे बताएं और मैं जवाब हटा दूंगा।

+0

कोई भाग्य नहीं। डीबी।आरबी: 4: '

'में: माइस्क्ल के लिए अपरिभाषित विधि' init ': कक्षा (NoMethodError) Mysql.init() – deepakg

+0

फिर आपके पास गलत पैकेज स्थापित हो सकता है। या आपको उस वर्ग को शुरू करने या लोड करने की ज़रूरत है जिस तरह से मुझे पता नहीं है। बहुत बुरा! –

1

क्या आप के लिए देख रहे हैं:

dbh = Mysql.real_connect("localhost", "testuser", "testpass", "test") 
0

आपका कोड मेरे लिए ठोस लग रहा है; यह rb19-mysql मुखपृष्ठ पर दिए गए उदाहरणों से बहुत अच्छी तरह से मेल खाता है।

my = Mysql.new(hostname, username, password, databasename) 
st = my.prepare("insert into tblname (col1,col2,col3) values (?,?,?)") 
st.execute("abc",123,Time.now) 
st.prepare("select col1,col2,col3 from tblname") 
st.execute 
st.fetch # => ["abc", 123, #<Mysql::Time:2005-07-24 23:52:55>] 
st.close 

जो इंगित करता है कि बंदरगाह स्थापित करने के साथ शायद कुछ सही नहीं है। बर्फ तेंदुए के उन्नयन के बाद मैकपॉर्ट्स ठीक से काम नहीं कर रहे सभी प्रकार के मुद्दे थे - क्या आप इससे पीड़ित हैं? ठीक से काम करने से पहले मुझे अपने सभी बंदरगाहों का पुनर्निर्माण करना पड़ा।

इसके अलावा (और मुझे पता है कि यह कुछ लोगों के लिए धर्म की तरह है), तो आप मैकपोर्ट संस्करण को मिटाने पर विचार करना चाहेंगे और बस माईस्क्ल मणि को पकड़ लेंगे। किसी भी कारण से, रत्नों का उपयोग करना मेरे लिए एक और अधिक सुखद अनुभव रहा है।

आशा है कि मदद करता है - शुभकामनाएं!

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