Provider OLE DB per DB2

Il provider Microsoft OLE DB per DB2, distribuito con Microsoft Host Integration Server, consente l'esecuzione di query distribuite di SQL Server sui dati di database DB2.

Nota

Per informazioni su come installare e configurare il provider OLE DB, vedere la documentazione inclusa con il provider.

Per creare un server collegato per l'accesso a un database DB2

  1. Installare il software client Host Integration Server in un computer in cui è in esecuzione un'istanza di SQL Server e selezionare le opzioni per installare il provider OLE DB per DB2.

  2. Determinare la stringa di connessione che il provider OLE DB per DB2 deve utilizzare per l'accesso all'origine dei dati DB2 in cui eseguire la query. Il modo migliore per determinare una stringa di connessione consiste nel creare un file di collegamento dati tramite l'applicazione New OLE DB Data Source di Host Integration Server. Per ulteriori informazioni, vedere la documentazione di Microsoft Host Integration Server.

  3. Eseguire sp_addlinkedserver per creare un server collegato, specificando DB2COLEDB per l'argomento provider_name, il nome del catalogo DB2 contenente i dati cui si desidera accedere per l'argomento catalog e la stringa di connessione indicata nel passaggio 2 per l'argomento provider_string.

    Nell'esempio seguente viene illustrato come utilizzare sp_addlinkedserver per creare la definizione di un server collegato che accede a un database 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. Eseguire sp_addlinkedsrvlogin per creare i mapping degli account di accesso di SQL Server agli account di accesso DB2.

    Nell'esempio seguente, l'account di accesso di SQL ServerSQLJoe viene mappato all'account di accesso DB2 DB2Joe:

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

    Nota

    Le password verranno trasmesse non crittografate e possono quindi essere visibili nelle definizioni delle origini dei dati e negli script salvati su disco, nei backup e nei file di log. Non utilizzare mai una password di amministratore per questo tipo di connessioni. Per ulteriori informazioni sulla protezione specifiche del proprio ambiente, consultare l'amministratore di rete.

Dopo avere eseguito questa procedura, è possibile utilizzare il nome del server collegato DB2SRV come nome del server in un nome composto da quattro parti e come argomento linked_server nella funzioneOPENQUERY. Ad esempio:

SELECT *
FROM DB2SRV.SEATTLE.WNW3XX.DEPARTMENT

Oppure

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

Se le query distribuite eseguite sulle origini dei dati DB2 prevedono confronti di valori NULL, utilizzare ISNULL o IS NOT NULL anziché gli operatori di confronto, quali uguale a (=), maggiore di (>) o minore di (<). Nelle istruzioni INSERT è inoltre necessario specificare valori per tutte le colonne di una tabella, anche per le colonne NULL o con valori predefiniti.