Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Na het toewijzen van omgevings- en verbindingshandles en het instellen van verbindingsattributen, maakt de applicatie verbinding met de databron of driver. Er zijn drie functies die je kunt gebruiken om verbinding te maken:
SQLConnect
SQLDriverConnect
SQLBrowseConnect
Voor meer informatie over het maken van verbindingen met een databron, inclusief de verschillende beschikbare opties voor verbindingsreeks, zie Using Connection String Keywords with SQL Server Native Client.
SQLConnect
SQLConnect is de eenvoudigste verbindingsfunctie. Het accepteert drie parameters: een naam van de gegevensbron, een gebruikers-ID en een wachtwoord. Gebruik SQLConnect wanneer deze drie parameters alle informatie bevatten die nodig is om verbinding te maken met de database. Om dit te doen, bouw je een lijst van databronnen met behulp van SQLDataSources; de gebruiker vragen om een databron, gebruikers-ID en wachtwoord; en roep dan SQLConnect aan.
SQLConnect gaat ervan uit dat de naam van een databron, gebruikers-ID en wachtwoord voldoende zijn om verbinding te maken met een databron en dat de ODBC-databron alle andere informatie bevat die de ODBC-driver nodig heeft om de verbinding te maken. In tegenstelling tot SQLDriverConnect en SQLBrowseConnect gebruikt SQLConnect geen verbindingsreeks.
SQLDriverConnect
SQLDriverConnect wordt gebruikt wanneer meer informatie nodig is dan alleen de naam van de gegevensbron, gebruikers-ID en wachtwoord. Een van de parameters van SQLDriverConnect is een verbindingsreeks met driver-specifieke informatie. Je zou SQLDriverConnect kunnen gebruiken in plaats van SQLConnect om de volgende redenen:
Om driver-specifieke informatie te specificeren op het moment van aansluiten.
Om te vragen dat de driver de gebruiker vraagt om verbindingsinformatie.
Om verbinding te maken zonder gebruik te maken van een ODBC-databron.
De SQLDriverConnect-connection string bevat een reeks trefwoord-waardeparen die alle verbindingsinformatie specificeren die door een ODBC-driver wordt ondersteund. Elke driver ondersteunt de standaard ODBC-zoekwoorden (DSN, FILEDSN, DRIVER, UID, PWD en SAVEFILE) naast driver-specifieke trefwoorden voor alle verbindingsinformatie die door de driver wordt ondersteund. SQLDriverConnect kan worden gebruikt om verbinding te maken zonder een databron. Een applicatie die bijvoorbeeld is ontworpen om een "DSN-loze" verbinding te maken met een instantie van SQL Server, kan SQLDriverConnect aanroepen met een verbindingsreeks die de login-ID, wachtwoord, netwerkbibliotheek, servernaam om mee te verbinden en de standaarddatabase definieert om te gebruiken.
Bij het gebruik van SQLDriverConnect zijn er twee opties om de gebruiker te vragen om benodigde verbindingsinformatie:
Applicatiedialoogvenster
Je kunt een applicatievenster aanmaken dat vraagt om verbindingsinformatie, en vervolgens SQLDriverConnect aanroept met een NULL-vensterhandle en DriverCompletion ingesteld op SQL_DRIVER_NOPROMPT. Deze parameterinstellingen voorkomen dat de ODBC-driver zijn eigen dialoogvenster opent. Deze methode wordt gebruikt wanneer het belangrijk is om de gebruikersinterface van de applicatie te beheren.
Driverdialoogvenster
Je kunt de applicatie zo programmeren dat een geldige windowhandle aan SQLDriverConnect wordt doorgegeven en de DriverCompletement-parameter wordt ingesteld op SQL_DRIVER_COMPLETE, SQL_DRIVER_PROMPT of SQL_DRIVER_COMPLETE_REQUIRED. De driver genereert vervolgens een dialoogvenster om de gebruiker om verbindingsinformatie te vragen. Deze methode vereenvoudigt de applicatiecode.
SQLBrowseConnect
SQLBrowseConnect, zoals SQLDriverConnect, maakt gebruik van een verbindingsreeks. Door echter SQLBrowseConnect te gebruiken, kan een applicatie iteratief een volledige verbindingsreeks construeren met de databron tijdens runtime. Hierdoor kan de toepassing twee dingen doen:
Bouw eigen dialoogvensters om deze informatie te vragen, zodat je de controle over de gebruikersinterface behoudt.
Blader in het systeem naar gegevensbronnen die kunnen worden gebruikt door een bepaald stuurprogramma, mogelijk in verschillende stappen.
De gebruiker kan bijvoorbeeld eerst door het netwerk bladeren voor servers en, na het kiezen van een server, door de server bladeren naar databases die toegankelijk zijn voor het stuurprogramma.
Wanneer SQLBrowseConnect een succesvolle verbinding voltooit, geeft het een verbindingsreeks terug die kan worden gebruikt bij volgende oproepen naar SQLDriverConnect.
De SQL Server Native Client ODBC-driver geeft altijd SQL_SUCCESS_WITH_INFO terug op een succesvolle SQLConnect, SQLDriverConnect of SQLBrowseConnect. Wanneer een ODBC-applicatie SQLGetDiagRec aanroept nadat ze SQL_SUCCESS_WITH_INFO heeft ontvangen, kan deze de volgende berichten ontvangen:
5701
Geeft aan dat SQL Server de context van de gebruiker in de standaarddatabase in de databron plaatste, of in de standaarddatabase die is gedefinieerd voor de login-ID die in de verbinding werd gebruikt, als de databron geen standaarddatabase had.
5703
Geeft de taal aan die op de server wordt gebruikt.
Het volgende voorbeeld toont het bericht dat door de systeembeheerder wordt teruggegeven bij een succesvolle verbinding:
szSqlState = "01000", *pfNativeError = 5701,
szErrorMsg="[Microsoft][SQL Server Native Client][SQL Server]
Changed database context to 'pubs'."
szSqlState = "01000", *pfNativeError = 5703,
szErrorMsg="[Microsoft][SQL Server Native Client][SQL Server]
Changed language setting to 'us_english'."
Je kunt berichten 5701 en 5703 negeren; Ze zijn alleen informatief. Je moet echter geen SQL_SUCCESS_WITH_INFO retourcode negeren, omdat berichten anders dan 5701 of 5703 kunnen worden teruggestuurd. Als bijvoorbeeld een driver verbinding maakt met een server die een instantie van SQL Server draait met verouderde catalogusprocedures, is een van de fouten die via SQLGetDiagRec terugkomen na een SQL_SUCCESS_WITH_INFO:
SqlState: 01000
pfNative: 0
szErrorMsg: "[Microsoft][SQL Server Native Client]The ODBC
catalog stored procedures installed on server
my65server are version 06.50.0193; version 07.00.0205
or later is required to ensure proper operation.
Please contact your system administrator."
De foutafhandelingsfunctie van een applicatie voor SQL Server verbindingen moet SQLGetDiagRec aanroepen totdat deze SQL_NO_DATA teruggeeft. Het zou dan moeten handelen op alle berichten behalve die met een pfNative-code van 5701 of 5703.