2010-04-16 12 views
7

से SQL सर्वर 2005 के लिए आवेदन रेल मैं (दुर्भाग्य से) एक रेलमाइक्रोसॉफ्ट SQL सर्वर 2005 से कनेक्ट करने के है जो Windows XP पर आवेदन को तैनात करने की है।कनेक्ट विंडोज

वेब पर सर्फिंग लिनक्स से SQL सर्वर से कनेक्ट करने के लिए बहुत सारी हिट हैं, लेकिन यह नहीं पता कि विंडोज से इसे कैसे किया जाए।

मूल रूप से मैं इन चरणों का पालन:

  • स्थापित dbi मणि
  • स्थापित ActiveRecord-एसक्यूएल सर्वर-अनुकूलक मणि

मेरे database.yml अब की तरह दिखता है यह:

development: 
    adapter: sqlserver 
    mode: odbc 
    dsn: test_dj 
    host: HOSTNAME\SQLEXPRESS 
    database: test_dj 
    username: guest 
    password: guest 

लेकिन मैं इसे कनेक्ट करने में असमर्थ हूं। जब मैं रेक db चलाएँ: विस्थापित मैं

IM002 (0) [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 

मिल मैं एक Windows उपयोगकर्ता नहीं हूँ, इसलिए वास्तव में अच्छी तरह dsn तत्व या तो का अर्थ नहीं समझ सकता। क्या किसी को यह पता है कि इसे कैसे हल किया जाए?

अग्रिम धन्यवाद


अलेक्जेंडर सुझावों के साथ अब मैं अपने database.yml संशोधित कर लिया है:

development: 
    adapter: sqlserver 
    mode: odbc 
    dsn: Provider=SQLOLEDB;Data Source=SCADA\SQLEXPRESS;UID=guest;PWD=guest;Initial Catalog=test_dj;Application Name=test 

लेकिन अब रेक db: विस्थापित मुझे देता है:

S1090 (0) [Microsoft][ODBC Driver Manager] Invalid string or buffer length 

क्या मैं हूँ कुछ जारी करना?

उत्तर

1
इस

एक नमूना DSN, डेटाबेस Windows उपयोगकर्ता खाते (डोमेन लॉगिन के साथ सबसे अच्छा है जब कंपनी के नेटवर्क) का उपयोग करने के लिए जोड़ता है

Provider=SQLOLEDB;Data Source=MyServer\MyInstance;Integrated Security=SSPI;Initial Catalog=MyDatabase;Application Name=My Application Name that will show up in the trace

तो यह एसक्यूएल सर्वर के लिए OLEDB प्रदाता का उपयोग करता है। एसक्यूएलएनसीएलआई का भी इस्तेमाल किया जा सकता है, ओडीबीसी के साथ कोशिश नहीं की है। दरअसल यह डीएसएन काफी परीक्षण नहीं किया जाता है (मुझे अपने अधिकारियों को आवश्यक अधिकार देने के लिए इंतजार करना पड़ता है), लेकिन इसे एक वर्किंग स्क्रिप्ट से कॉपी किया गया था, जो प्रदाता के रूप में SQLNCLI का उपयोग करता था। डेटा स्रोत सर्वर है, और यदि उसके पास नामित उदाहरण है, तो इसे निर्दिष्ट करना होगा, इसलिए यह केवल Server या Server\Instance है। Integrated Security=SSPI बताता है कि आप विंडोज प्रमाणीकरण का उपयोग करना चाहते हैं। अन्यथा आप UID=MyUser;PWD=MyPassword का उपयोग करके उपयोग करने के लिए उपयोगकर्ता और पासवर्ड निर्दिष्ट करते हैं। यूआईडी, उपयोगकर्ता, उपयोगकर्ता नाम, पासवर्ड - मुझे लगता है कि ये सभी पैरामीटर काम करते हैं।

इंटरनेट पर एक महान साइट है जो सभी प्रकार के डीएसएन नमूने प्रदान करती है, बस इसे कहीं भी नहीं मिल सकती है। अगर मुझे लगता है, तो मैं आपको बता दूंगा।

यदि आपके पास रेल में कोई प्रदाता नहीं है, तो जांचें कि रेल विंडोज घटक ऑब्जेक्ट मॉडल (COM) का समर्थन करता है या नहीं। और यदि ऐसा होता है, तो आप ADODB.Connection COM क्लास को भी प्रारंभ कर सकते हैं, उस पर एडीओ के साथ काम करते हैं। आपके उत्तर के लिए http://www.connectionstrings.com/

+0

धन्यवाद सिकंदर:

आह, यहाँ है कि साइट के बारे में मैं बात कर रहा था है। आपकी टिप के मुताबिक मैंने संपादित डेटाबेस में अपने डेटाबेस.मिल को संशोधित कर दिया है, लेकिन अब "अमान्य स्ट्रिंग या बफर लम्बाई" –

+0

है यह SQL क्वेरी में पहले से ही एक त्रुटि त्रुटि की तरह दिखता है, कनेक्शन कनेक्शन नहीं। त्रुटि कोड भी प्रदान करना सहायक है, यह बहुत कुछ कह सकता है। वैसे भी, मुझे यह आलेख मिला है जो आपकी मदद कर सकता है: http://tutorials.aspfaq.com/8000xxxxx-errors/why-do-i-get-80040e57/80040e07-errors.html बेशक, यह इस पर निर्भर करता है आपके एसक्यूएल प्रश्नों को स्वचालित रूप से किस प्रकार स्केल किया जाता है और आप उन्हें कैसे संशोधित कर सकते हैं। यह भी ध्यान रखें कि एमएसएसक्यूएल में CHAR और VARCHAR की अधिकतम लंबाई 8000 है। – AlexanderMP

+0

मुझे एनरिको जैसी ही समस्या है। यहां त्रुटि है: ओडीबीसी :: त्रुटि: एस 10 9 0 (0) [माइक्रोसॉफ्ट] [ओडीबीसी चालक प्रबंधक] अमान्य स्ट्रिंग या बफर लंबाई यह मेरे (बहुत सरल) मॉडल पर एक प्रश्न पूछने से है। –

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