2008-09-17 33 views
5

Me estoy conectando a una capa de procedimiento almacenado de AS/400 utilizando el paquete IBM iSeries Access para Windows. Esto proporciona una DLL .NET con clases similares a las del espacio de nombres System.Data. Como tal, utilizamos su implementación de la clase de conexión y le proporcionamos una cadena de conexión.¿Cómo se indica la biblioteca predeterminada de SQL en una cadena de conexión IBM iSeries 2 a un AS/400?

¿Alguien sabe cómo puedo modificar la cadena de conexión para indicar la biblioteca por defecto que debería usar?

Respuesta

1

¿Está utilizando el parámetro Lista de bibliotecas de catálogo para OLE DB? Esto es lo que mi cadena de conexión normalmente se ve como:

<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

de fragmentos de algún código fuente Delphi utilizando el controlador de Client Access Express. Probablemente no sea exactamente lo que está buscando, pero puede ayudar a otros que tropiecen con esta publicación. La parte DBQ es la biblioteca predeterminada, y la parte System es el nombre de host 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 se está conectando a través .NET:

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

colección predeterminada es el parámetro que establece la biblioteca en la que sus programas deben comenzar a ejecutar.

Y si se está conectando a través de ODBC desde Windows (como la creación de un conductor en el panel de control):

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

En este caso LibraryList es el parámetro para establecer, recuerda esto es para conexión ODBC.

Hay dos controladores de IBM para conectarse al AS400, el anterior usa la cadena de conexión anterior, si tiene la última versión del software de cliente de IBM llamada "System i Access para Windows", entonces debe usar esto cadena de conexión:

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

la última es más o menos lo mismo, sólo los DRIVER cambios de valores de parámetros.

Si está usando esto en una aplicación .NET no se olvide de añadir el providerName parámetro a su etiqueta XML y definir la API se utiliza para la conexión de lo que sería OleDb en este caso:

providerName="System.Data.OleDb" 
Cuestiones relacionadas