2008-09-17 14 views
5

Je me connecte à une couche de procédure stockée AS/400 à l'aide du package IBM iSeries Access for Windows. Cela fournit une DLL .NET avec des classes similaires à celles de l'espace de noms System.Data. En tant que tel, nous utilisons leur implémentation de la classe de connexion et lui fournissons une chaîne de connexion.Comment indiquer la bibliothèque par défaut SQL dans une chaîne de connexion IBM iSeries 2 à un AS/400?

Est-ce que quelqu'un sait comment je peux modifier la chaîne de connexion pour indiquer la bibliothèque par défaut qu'il devrait utiliser?

Répondre

1

Utilisez-vous le paramètre Catalog Library List pour OLE DB? C'est ce que ma chaîne de connexion ressemble généralement à:

<add name="AS400ConnectionString" connectionString="Data Source=DEVL820;Initial Catalog=Q1A_DATABASE_SRVR;Persist Security Info=False;User ID=BLAH;Password=BLAHBLAH;Provider=IBMDASQL.DataSource.1;**Catalog Library List=&quot;HTSUTST, HTEUSRJ, HTEDTA&quot;**" providerName="System.Data.OleDb" /> 
2

Snippet à partir du code source Delphi en utilisant le pilote Client Access Express. Probablement pas exactement ce que vous cherchez, mais cela peut aider d'autres personnes à trébucher sur ce post. La pièce DBQ est la bibliothèque par défaut et la pièce System est le nom d'hôte AS400/DB2.

ConnectionString := 
    'Driver={Client Access ODBC Driver (32-bit)};' + 
    'System=' + System + ';' + 
    'DBQ=' + Lib + ';' + 
    'TRANSLATE=1;' + 
    'CMT=0;' + 
    //'DESC=Client Access Express ODBC data source;' + 
    'QAQQINILIB=;' + 
    'PKG=QGPL/DEFAULT(IBM),2,0,1,0,512;' +  
    'SORTTABLE=;' + 
    'LANGUAGEID=ENU;' + 
    'XLATEDLL=;' + 
    'DFTPKGLIB=QGPL;'; 
4

Si vous connectez par .NET:

Provider=IBMDA400;Data Source=as400.com;User Id=user;Password=password;Default Collection=yourLibrary; 

Collection par défaut est le paramètre qui définit la bibliothèque où vos programmes devraient commencer à exécuter.

Et si vous connectez via ODBC à partir de Windows (comme la création d'un pilote dans le panneau de commande):

DRIVER=Client Access ODBC Driver(32-bit);SYSTEM=as400.com;EXTCOLINFO=1;UID=user;PWD=password;LibraryList=yourLibrary 

Dans ce cas LibraryList est le paramètre à régler, rappelez-vous cette est pour la connexion ODBC.

Il existe deux pilotes d'IBM pour se connecter à l'AS400, l'ancien utilise la chaîne de connexion ci-dessus, si vous possédez la dernière version du logiciel client IBM "System i Access for Windows", vous devez utiliser cette chaîne de connexion:

DRIVER=iSeries Access ODBC Driver;SYSTEM=as400.com;EXTCOLINFO=1;UID=user;PWD=password;LibraryList=yourLibrary 

le dernier est à peu près le même, seuls les changements de valeur des paramètres DRIVER.

Si vous utilisez ce dans une application .NET ne pas oublier d'ajouter le paramètre providerName à votre balise XML et définir l'API utilisée pour la connexion qui serait OleDb dans ce cas:

providerName="System.Data.OleDb"