Condividi tramite


Testare la connettività OLE DB a SQL Server usando un file UDL

Si applica a: SQL Server

Annotazioni

Prima di iniziare la risoluzione dei problemi, controllare i prerequisiti ed esaminare l'elenco di controllo.

Questo articolo descrive come creare un file UDL (Universal Data Link) e usare provider diversi per testare la connessione a un'istanza di SQL Server tramite il file .

Creare un file UDL

Annotazioni

Un file UDL consente di testare la connettività dei provider ole DB (Object Linking and Embedding Database) a qualsiasi database back-end indipendentemente da un'applicazione completa. Il salvataggio di un file UDL genera un stringa di connessione ben formato, che è possibile usare per creare stringa di connessione di un'applicazione o controllare come impostare proprietà diverse. Per ottenere la stringa, aprire il file nel Blocco note.

Per creare un file UDL per testare il provider OLE DB, seguire questa procedura:

  1. Per visualizzare le estensioni di file in Esplora file, seguire questa procedura:

    1. Selezionare Start e immettere Esplora file Opzioni.

    2. Selezionare la scheda Visualizza , deselezionare l'opzione Nascondi estensioni per i tipi di file noti e quindi selezionare OK.

  2. Passare alla cartella in cui si vuole creare un file UDL. Ad esempio, C:\temp.

  3. Creare un nuovo file di testo (ad esempio sqlconn.txt) e quindi rinominare l'estensione da .txt a udl. (Selezionare al messaggio di avviso relativo alla modifica dell'estensione del nome file.

    È anche possibile usare lo script di PowerShell seguente per creare sqlconn.udl nella cartella %temp%.

    clear
    $ServerName = "(local)"
    $UDL_String = "[oledb]`r`n; Everything after this line is an OLE DB initstring`r`nProvider=MSOLEDBSQL.1;Integrated Security=SSPI;Persist Security Info=False;User ID=`"`";Initial Catalog=`"`";Data Source=" + $ServerName + ";Initial File Name=`"`";Server SPN=`"`";Authentication=`"`";Access Token=`"`""
    Set-Content -Path ($env:temp + "\sqlconn.udl") -Value $UDL_String -Encoding Unicode
    
    #open the UDL
    Invoke-Expression ($env:temp + "\sqlconn.udl")
    

Testare la connessione usando il driver OLE DB di SQL Server

Microsoft OLE DB Driver per SQL Server (MSOLEDBSQL) è il driver OLE DB di SQL Server più recente. Il driver include nuove funzionalità, ad esempio TLS 1.2 e 1.3, MultiSubnetFailover e metodi di autenticazione di Azure (Microsoft Entra ID). È consigliabile usare questo driver per i database di SQL Server più recenti.

Il provider Microsoft OLE DB per SQL Server (SQLOLEDB) è il provider di connettività OLE DB legacy. È integrato in Windows e può connettersi a qualsiasi versione di SQL Server non configurata per richiedere associazioni di canale TLS 1.2 o 1.3.

Per testare la connessione usando microsoft OLE DB driver o provider per SQL Server, seguire questa procedura:

  1. Aprire il file UDL.

  2. Selezionare la scheda Provider , selezionare il driver OLE DB o il provider usato nell'applicazione e quindi selezionare Avanti.

  3. Nella scheda Connessione specificare il protocollo di rete, il nome di dominio completo (FQDN) e il numero di porta in Seleziona o immettere un nome server. Ad esempio: tcp:SQLProd01.contoso.com,1433.

    Annotazioni

    In questo modo, l'immissione del nome del server e della porta consente di evitare problemi comuni, ad esempio i problemi del servizio SQL Server Browser, che potrebbero interferire con una connessione.

  4. Immettere altre proprietà nella scheda Connessione .

    Annotazioni

    La maggior parte dei test di connessione non richiede l'immissione di un nome di database.

  5. Selezionare Test connessione.

È anche possibile selezionare altre schede ed esplorare altre impostazioni del driver. Al termine del test di connessione, selezionare OK per salvare il stringa di connessione in un file.

Testare la connessione usando il provider Microsoft OLE DB per i driver ODBC

Per testare i driver ODBC (Open Database Connectivity) usando il provider Microsoft OLE DB per i driver ODBC, seguire questa procedura:

  1. Aprire il file UDL.

  2. Selezionare >>ODBC Avanti.

  3. Nella scheda Connessione è possibile utilizzare uno dei metodi seguenti per specificare l'origine dei dati e quindi immettere altre proprietà.

    • Immettere un valore nel campo Usa nome origine dati.

    • Immettere un stringa di connessione senza DSN, ad esempio Driver={ODBC Driver 17 for SQL Server};Server=SQLProd01;Database=Northwind;Trusted_Connection=Yes.

  4. Selezionare Test connessione.

Testare i provider a 32 bit in computer a 64 bit

Per testare la connessione dei provider a 32 bit nei sistemi operativi a 64 bit, seguire questa procedura:

  1. Nella finestra del prompt dei comandi eseguire il comando seguente per aprire il prompt dei comandi a 32 bit:

    %windir%\SysWoW64\cmd.exe
    
  2. Eseguire il comando seguente per aprire il file UDL:

    C:\temp\test.udl
    
  3. Se viene visualizzato il provider OLE DB Microsoft Jet 4.0 nella scheda Provider , è stato caricato correttamente la finestra di dialogo a 32 bit e ora è possibile selezionare il provider a 32 bit per testare la connessione.

Avviare un file UDL

Fare doppio clic su un file UDL per avviarlo. Di seguito viene descritto il processo sottostante utilizzato durante l'avvio di un file UDL.

L'interfaccia utente del file UDL viene fornita da OLEDB32.DLL e ospitata in RUNDLL32.EXE.

  • Per i sistemi operativi a 32 bit o per i provider a 64 bit nei sistemi operativi a 64 bit, usare il comando seguente (presupponendo C:\temp\test.udl):

    Rundll32.exe "C:\Program Files\Common Files\System\OLE DB\oledb32.dll",OpenDSLFile C:\temp\test.udl

  • Per i provider a 32 bit nei sistemi operativi a 64 bit, usare il comando seguente:

    C:\Windows\SysWOW64\Rundll32.exe "C:\Program Files (x86)\Common Files\system\Ole DB\oledb32.dll",OpenDSLFile C:\temp\test.udl

L'estensione di file udl viene associata al primo comando. Per i provider a 32 bit nei sistemi operativi a 64 bit, è possibile semplificare le operazioni eseguendo un prompt dei comandi a 32 bit e quindi eseguendo START C:\TEMP\TEST.UDL per testare i provider a 32 bit. Facoltativamente, è possibile creare un mapping di estensione di file che usa il comando a 32 bit.

Creare una mappatura dell'estensione del file UDL32 a 32 bit

Se si usano spesso provider a 32 bit in sistemi operativi a 64 bit, è possibile eseguire il mapping di una nuova estensione di file (ad esempio udl32) per avviare la finestra di dialogo UDL a 32 bit seguendo questa procedura.

Importante

Questa sezione, metodo o attività contiene passaggi che ti spiegano come modificare il registro. Tuttavia, potrebbero verificarsi gravi problemi se si modifica il registro in modo errato. Pertanto, assicurati che segui questi passaggi con attenzione. Al fine di protezione, eseguire il backup del registro di sistema prima di modificarlo, in modo da poterlo ripristinare in caso di problemi. Per ulteriori informazioni su come eseguire il backup e ripristinare il registro, consulta Come eseguire il backup e ripristinare il registro in Windows.

  1. Copiare lo script seguente nel Blocco note e salvarlo come udl32.reg.

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\.UDL32]
    @="ft000001"
    
    [HKEY_CLASSES_ROOT\ft000001]
    @="Microsoft Data Link 32"
    "BrowserFlags"=dword:00000008
    "EditFlags"=dword:00000000
    
    [HKEY_CLASSES_ROOT\ft000001\shell]
    @="open"
    
    [HKEY_CLASSES_ROOT\ft000001\shell\open]
    
    [HKEY_CLASSES_ROOT\ft000001\shell\open\command]
    @="C:\\Windows\\SysWOW64\\Rundll32.exe \"C:\\Program Files (x86)\\Common Files\\system\\Ole DB\\oledb32.dll\",OpenDSLFile %1"
    
    [HKEY_CLASSES_ROOT\ft000001\shell\open\ddeexec]
    
  2. Fare doppio clic sul file .reg per creare una chiave del Registro di sistema, che consente di avviare automaticamente i file UDL32.

  3. Creare un file con estensione udl32 . Ad esempio, C:\temp\test.udl32.

  4. Fare doppio clic sul test.udl32 per avviare la finestra di dialogo UDL a 32 bit. Ad esempio, è possibile che venga visualizzata una finestra di dialogo simile alla seguente:

    Screenshot che mostra un esempio di finestra di dialogo UDL a 32 bit.

Suggerimenti per risolvere i problemi di connessione

È possibile usare i metodi seguenti per verificare il motivo per cui la connessione non riesce.

  • Modificare il provider.
  • Modificare il protocollo. Ad esempio, tcp:, np: o lpc:.
  • Testare la connessione con o senza il suffisso di dominio completo o con solo l'indirizzo IP.
  • Rimuovere il numero di porta e usare il nome dell'istanza per testare il servizio SQL Server Browser.

Per ognuno dei metodi precedenti, se una combinazione funziona e un'altra ha esito negativo, potrebbe dare un indizio del problema. Ad esempio, quando si usa il secondo metodo, se lpc: funziona e non tcp: , provare ad abilitare il protocollo TCP in Gestione configurazione SQL Server.

Vedi anche

Configurazione UDL (Universal Data Link)

Annotazioni

Se questo articolo non risolve il problema, per altre informazioni, vedere Risolvere i problemi di connettività in SQL Server .