11

से आईबीएम i सर्वर से कनेक्ट करें मेरे पास एक बड़ा सौदा है: मुझे अपने ग्राहक के आईबीएम एएस/400 (उर्फ आईएसरीज़, अब आईबीएम i) में कनेक्ट करना है (मैं केवल डेटा पढ़ना चाहता हूं, लिखना नहीं चाहता) सर्वर ...एसक्यूएल सर्वर 2008 आर 2

मुझे लगता है कि मेरे पास सभी पैरामीटर आवश्यक हैं (मुझे एएस/400 प्रोग्रामर द्वारा दिया गया है), लेकिन मुझे पता नहीं चल सकता कि मुझे किस ड्राइवर का उपयोग करना है, और यदि मेरे पास इस सॉफ़्टवेयर की आवश्यकता है !

मैंने आईबीएम एएस/400 क्लाइंटएप 5.8 ड्राइवर (नवीनतम ओएस के लिए पैच के साथ) स्थापित किया है, और अब मैं अपने एसक्यूएल सर्वर 2008 आर 2 (x64) सर्वर में एक नया Linked Server कॉन्फ़िगर करने की कोशिश कर रहा हूं।

पहली समस्या: मुझे किस ड्राइवर का उपयोग करना चाहिए?

मैं इतने सारे विकल्प हैं (लेकिन शायद इन कार्यों में से कोई भी !!):

IBM DB2 UDB for iSeries IBMDASQL OLE DB Provider 
IBM DB2 UDB for iSeries IBMDA400 OLE DB Provider 
IBM DB2 UDB for iSeries IBMDARLA OLE DB Provider 

... या शायद अन्य सामान्य OLEDB/ODBC ड्राइवरों ?!

दूसरा समस्या: मैं अपने मानकों (जो क्षेत्र में मेरा मतलब है!)

कहाँ रखना चाहिए किसी भी मामले में, मैं अपने Linked Server के लिए एक प्रदाता का चयन में, स्पष्ट रूप से मैं अपने मानकों को स्थापित करने के लिए है ... लेकिन मैं केवल इस राशि:

एक व्यवस्थापक उपयोगकर्ता के
  • प्रयोक्ता नाम
  • व्यवस्थापक उपयोगकर्ता के
  • पासवर्ड
  • AS/400 सर्वर आईपी पते
  • ,210
  • "मुख्य" संग्रह, के नाम पर है, जिसमें मेरे डेटा (ACG_DATV2 की तरह कुछ) जमा हो जाती है

तीसरा समस्या: मैं अपने प्रश्नों कैसे लिखना चाहिए? एएस/400 "संग्रह" और तालिकाओं का संदर्भ कैसे लें?

मुझे नहीं पता कि मेरी रीडिंग क्वेरी कैसे बनाएं: टेबल और दृश्य (?!) कहां संग्रहीत हैं और मैं उनका संदर्भ कैसे दे सकता हूं?

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

उत्तर

15

मुझे लगता है कि आप जो चाहते हैं उसे प्राप्त करने के कई तरीके हैं, लेकिन मैं यह समझाने की कोशिश करूंगा कि मैं आपके मामले में क्या करूँगा।

आईबीएम क्लाइंटएप (और पैच) के उस संस्करण के साथ, यदि आप सही डेटा प्रदाता का उपयोग करते हैं तो मुझे SQL सर्वर 2008 R2 लिंक किए गए सर्वर से कनेक्ट होने में परेशानी नहीं होनी चाहिए।

सबसे पहले, इस तरह से अपने लिंक किए गए सर्वर को कॉन्फ़िगर करने की कोशिश:

  • लिंक्ड सर्वर नाम: आप क्या चाहते हैं, यह सिर्फ एक कस्टम नाम (उदाहरण: MYAS400)
  • प्रदाता: IBM DB2 UDB for iSeries IBMDASQL OLE DB Provider
  • उत्पाद का नाम: महत्वपूर्ण नहीं है, जैसे iSeries Access OLEDB Driver
  • डेटा स्रोत कुछ: AS/400 सर्वर आईपी पते (उदाहरण: 192.168.0.1)

या तो यदि आप विज़ार्ड या SQL कोड द्वारा लिंक किए गए सर्वर को कॉन्फ़िगर करते हैं, तो पहली बार इसे AS/400 सर्वर के डेटा तक पहुंचने की आवश्यकता होगी, आपको एक सामान्य आईएसरीज़ विंडो के साथ क्रेडेंशियल्स के लिए कहा जाएगा (मेरा उदाहरण देखें)।

तारों के मामले के बिना अपना उपयोगकर्ता नाम (उपयोगकर्ता आईडी) और सापेक्ष पासवर्ड सेट करें !!

enter image description here

एक सामान्य टिप के रूप में (लेकिन यह केवल मेरे अनुभव से संबंधित है!), विशेष वर्ण और ऊपरी/निचले मामलों भेद से बचने की कोशिश ...

तुम यहाँ आते हैं तो (कोई समस्या नहीं लिंक्ड सर्वर निर्माण में), लिंक किए गए सर्वर को काम करना चाहिए (इसलिए पहली और दूसरी समस्या हल हो जाती है): चलो पहली क्वेरी बनाएं!

एक बार लिंक किए गए सर्वर बनने के बाद, आपको बस संग्रह, पुस्तकालय और, ज़ाहिर है, सही तालिका और लिंक किए गए सर्वर (नाम से) का सही संदर्भ देना है: इस जानकारी के साथ, इस तरह की एक क्वेरी बनाएं (यह सामान्य टी SQL सिंटैक्स है):

SELECT 
    (Field1) 
    , (Field2) 
    , * 
FROM (Linked Server Name).(Catalog Name).(Library).(TableName) 

जानकारी जिन्हें आप शायद भूल रहे हैं "संग्रहण" होता: आप आसानी से अपने नए लिंक्ड सर्वर अंदर कैटलॉग पेड़ ब्राउज़ कर इसे पा सकते हैं, या बस iSeries Access Navigator का उपयोग उपकरण!

तो, आपके मामले में, मुझे लगता है कि क्वेरी (कम या ज्यादा) होना चाहिए:

SELECT 
    FILIO 
    , DTVLD 
    , DTVLA 
    , SEQZA 
    , CFIMP 
    , PADRE 
    , TPVLD 
    , CMVLD 
    , * 
FROM MYAS400.S242DA0A.ACG_DATV2.ANLE200F 

ध्यान दें कि S242DA0A केवल मेरे मामले में मान्य है ...

भी याद रखें कि:

  • एएस/400 शायद आपको अक्सर क्रेडेंशियल के लिए पूछेगा: भले ही आप एसएसएमएस को बंद और दोबारा खोलें।
  • प्रदर्शन? ... किसी और चीज की बात करने के लिए बेहतर :) ... अपने एसक्यूएल सर्वर टेबल में टेबल निकालें और उन्हें वहां से पूछें! इसे सरल बनाएं: SELECT (Fields) INTO myTable FROM (AS/400 table)
  • मैंने इस प्रक्रिया को कई बार कोशिश की है, मुझे कई परेशानी नहीं हुईं (एक बार जब मैं कुशल हो जाता हूं!) ... लेकिन केवल डेटा पढ़ने के लिए (जैसा आपने पूछा)! कभी डेटा अपडेट करने की कोशिश नहीं की !!!

अच्छा लकीर!

+0

धन्यवाद, मैं कोशिश कर रहा हूं! –

+0

क्या आपको लगता है कि यह विंडोज 7 x64 पर भी ठीक है? मैंने सोचा कि बहुत सारी परेशानी थी ... लेकिन अभी भी इस समाधान के साथ प्रयास कर रहा है! :) –

+1

आपने कहा कि आपके पास iSeries ClientAccess का एक पैच संस्करण है (5।8): मुझे लगता है कि आप सर्विस पैक के बारे में बात कर रहे थे (और संस्करण 4.0.100.1124 - वी 5 आर 4 एम 0 होना चाहिए): जहां तक ​​मुझे पता है कि यह भी हालिया ओएस पर समस्याओं को सुधारता है! – MAXE

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

  • कोई संबंधित समस्या नहीं^_^