11

Büyük bir işim var: Müşterimin IBM AS/400'üne (sadece iSeries, şimdi IBM i) yazmam gerekiyor (veri okumak istiyorum, yazmamak istiyorum) sunucu ...IBM i sunucusuna bağlanın Sql Server 2008 R2

Sanırım tüm parametrelere ihtiyacım var (AS/400 programlayıcı tarafından bana verildi), fakat hangi sürücünün kullanmam gerektiğini anlayamıyorum ve eğer buna gerekli tüm yazılımlarım varsa !

IBM AS/400 ClientAccess 5.8 sürücüsünü (en son işletim sistemi için bir düzeltme eki) yükledim ve şimdi Sql Server 2008 R2 (x64) sunucumda yeni bir Linked Server yapılandırmaya çalışıyorum.

İlk sorun: Hangi sürücüyü kullanmalıyım?

O kadar çok seçenek var (ama belki bu eserlerin !! hiçbiri):

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 

... ya da belki diğer jenerik OLEDB/ODBC sürücüler ?!

İkinci sorun: Açıkçası benim parametrelerini ayarlamak zorunda benim Linked Server için bir sağlayıcı seçin I, Her durumda benim parametrelerini (! Hangi alanların içinde demek)

koymalıyız ... ama sadece bu var:

bir ADMIN kullanıcının
  • Adı
  • YÖNETİCİ kullanıcının
  • Şifre
  • AS/400 sunucusu IP adresi
  • "ana" arşiv adını hangi verilerim (ACG_DATV2 gibi bir şey) saklanır

Üçüncü sorun: Nasıl sorguları yazmalıyım? AS/400 "arşivi" ve tablolar nasıl referanslanır?

Okuma sorgumu nasıl yapılandıracağımı bilmiyorum: Tablolar ve görünümler (?!) Nerede saklanır ve bunlara nasıl başvurabilirim?

Teşekkürler!

cevap

15

Bence, istediğini elde etmenin birçok yolu var, ama ben senin durumunda ne yapacağımı açıklamaya çalışacağım.

IBM ClientAccess'in (ve ayrıca düzeltme ekinin) bu sürümünde, doğru veri sağlayıcısını kullanırsanız Sql Server 2008 R2 Bağlantılı Sunucusuna bağlanma konusunda sıkıntı çekmemeliyim.Her şeyden

Birincisi, bu şekilde bağlantılı sunucu yapılandırmayı deneyin:

  • Bağlantılı sunucu adı: istediğini, bu sadece özel bir ad (örnek: MYAS400)
  • Sağlayıcı: IBM DB2 UDB for iSeries IBMDASQL OLE DB Provider
  • Ürün adı: önemli değil, iSeries Access OLEDB Driver
  • Veri kaynağı gibi bir şey: AS/400 sunucusu IP adresi (örnek: 192.168.0.1)

Ya SQL koduna göre sihirbazı kullanarak veya bağlı sunucu yapılandırmak eğer, ilk kez o AS/400 sunucu verilere erişmek gerekir, siz (tipik ISeries pencere, kimlik bilgileri istenir örneğime bakın).

dizeleri olayla ilgili olmaksızın, kullanıcı adınızı (Kullanıcı Kimliği) ve bağıl şifre belirleyin !! Genel bir ipucu olarak

enter image description here

(ama bu sadece benim deneyim ile ilgilidir!), özel karakterler ve üst/alt vakalar ayrımları kaçınıyorum ...

Burada gelirseniz

(sorun yok Bağlantılı Sunucunun oluşturulmasında), Bağlantılı Sunucu çalışmalıdır (böylece ilk ve ikinci sorun çözülür): İlk sorguyu oluşturalım!

Bağlantılı Sunucu oluşturulduktan sonra, tek ihtiyacınız olan arşiv, kitaplık ve tablonun doğru tablosunu ve Bağlantılı Sunucuyu (ada göre) doğru olarak göndermektir: bu bilgilerle, bu gibi bir sorgu oluşturun. (o zamanki T-SQL sözdizimi var):

muhtemelen kaçırdığını tek bilgi "arşiv" dir
SELECT 
    (Field1) 
    , (Field2) 
    , * 
FROM (Linked Server Name).(Catalog Name).(Library).(TableName) 

: kolayca yeni Bağlantılı Server içinde Kataloglar ağacı gezen bulmak, ya da sadece iSeries Access Navigator kullanabilirsiniz aracı!

: Ayrıca unutmayın ... S242DA0A sadece benim durumumda geçerlidir

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

Not olduğunu

:

Yani, sizin durumda, sorgu (daha fazla veya daha az) olması gerektiğini düşünüyorum

  • AS/400 muhtemelen çok sık kimlik bilgilerini soracaktır: Ayrıca eğer yakın ve SSMS yeniden açın.
  • Performans? ... ... başka bir şey :) konuşmak sizin SQL Server tablolarında tabloları özü ve oradan sorgulamak için daha iyi! Bunu basit bir şekilde yapın: SELECT (Fields) INTO myTable FROM (AS/400 table)
  • Bu işlemi birçok kez denedim, birçok sorunum olmadı (bir kez uzmanlık kazandığımda!) ... ama sadece veri okumak için (siz de istediğin gibi)! Verileri güncellemeye çalışmadım!

BOL ŞANSLAR!

+0

sayesinde bunu çalışıyorum! –

+0

Windows 7 x64'te de her şey yolunda mı? Bir sürü sorun olduğunu düşündüm ... ama yine de bu çözümü deniyorum! :) –

+1

iSeries ClientAccess'in (5.8): Servis Paketinden bahsettiğinizi düşünüyorum (ve sürüm 4.0.100.1124 - V5R4M0 olmalıdır): Bildiğim kadarıyla son işletim sistemindeki sorunları düzeltir! – MAXE