Fournisseur OLE DB pour DB2

Le fournisseur Microsoft OLE DB pour DB2, distribué avec Microsoft Host Integration Server, permet aux requêtes distribuées SQL Server d'interroger des données dans les bases de données DB2.

Notes

Pour plus d'informations sur l'installation et la configuration du fournisseur OLE DB, consultez la documentation qui l'accompagne.

Pour créer un serveur lié permettant d'accéder à une base de données DB2

  1. Installez le logiciel client Host Integration Server sur un ordinateur qui exécute une instance de SQL Server et sélectionnez les options d'installation du fournisseur OLE DB pour DB2.

  2. Déterminez la chaîne de connexion requise par le fournisseur OLE DB pour DB2 pour accéder à la source de données DB2 à interroger. La meilleure méthode pour déterminer une chaîne de connexion consiste à créer un fichier de liaison de données en utilisant la nouvelle application de source de données OLE DB de Host Integration Server. Pour plus d'informations, consultez la documentation de Microsoft Host Integration Server.

  3. Exécutez sp_addlinkedserver pour créer un serveur lié, en spécifiant DB2OLEDB en tant que provider_name, le nom du catalogue DB2 contenant les données auxquelles vous souhaitez accéder en tant que catalog et la chaîne de connexion de l'étape 2 en tant que provider_string.

    L'exemple suivant montre comment utiliser sp_addlinkedserver pour créer une définition de serveur lié qui accède à une base de données DB2 :

    EXEC sp_addlinkedserver @server = 'DB2SRV',
       @srvproduct = 'Microsoft OLE DB Provider for DB2',
       @catalog = 'SEATTLE',
       @provider = 'DB2OLEDB',
       @provstr =
         'NetLib=SNA;NetAddr=;NetPort=;RemoteLU=SEATTLE;LocalLU=LOCAL;
          ModeName=QPCSUPP;InitCat=SEATTLE;
          Default Schema=WNW3XX;PkgCol=WNW3XX;TPName=;Commit=YES;
          IsoLvl=NC;AccMode=;CCSID=37;PCCodePage=1252;BinAsChar=NO;
          Data Source=Seattle_WNW3XX'
    
  4. Exécutez sp_addlinkedsrvlogin pour créer des mappages de connexions entre les connexions SQL Server et DB2.

    L'exemple suivant mappe la connexion SQL ServerSQLJoe à la connexion DB2 DB2Joe :

    EXEC sp_addlinkedsrvlogin 'DB2SRV', false, 'SQLJoe', 'DB2Joe', 'x894jd03?'
    

    Notes

    Les mots de passe sont transmis sans être chiffrés. Les mots de passe peuvent être visibles dans les définitions des sources de données et dans les scripts enregistrés sur disque, dans les sauvegardes et dans les fichiers journaux. N'utilisez jamais le mot de passe d'un administrateur pour ce type de connexion. Consultez votre administrateur réseau pour des conseils de sécurité propres à votre environnement.

Après l'exécution de ces opérations, vous pouvez utiliser le nom de serveur lié DB2SRV comme nom de serveur dans les noms à quatre parties et comme linked_server dans la fonction OPENQUERY. Exemple :

SELECT *
FROM DB2SRV.SEATTLE.WNW3XX.DEPARTMENT

Or

SELECT *
FROM OPENQUERY(DB2SRV, 'SELECT * FROM SEATTLE.WNW3XX.EMP_ACT')

Lorsque les requêtes distribuées sur des sources de données DB2 impliquent des comparaisons NULL, utilisez ISNULL ou IS NOT NULL plutôt que des opérateurs de comparaison, tels que égal (=), supérieur à (>) ou inférieur à (<). De plus, les instructions INSERT doivent fournir des valeurs pour toutes les colonnes d’une table, même si certaines d’entre elles peuvent être NULL ou ne pas posséder de valeur par défaut.