Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Efter att miljö- och anslutningshandtag har allokerats och anslutningsattribut satts, ansluter applikationen till datakällan eller drivrutinen. Det finns tre funktioner du kan använda för att koppla samman:
SQLConnect
SQLDriverConnect
SQLBrowseConnect
För mer information om hur man skapar anslutningar till en datakälla, inklusive de olika tillgängliga reťazec pripojenia-alternativen, se Using Connection String Keywords with SQL Server Native Client.
SQLConnect
SQLConnect är den enklaste anslutningsfunktionen. Den accepterar tre parametrar: ett namn på datakällan, ett användar-ID och ett lösenord. Använd SQLConnect när dessa tre parametrar innehåller all information som behövs för att ansluta till databasen. För att göra detta, bygg en lista över datakällor med hjälp av SQLDataSources; be användaren om en datakälla, användar-ID och lösenord; och anropa sedan SQLConnect.
SQLConnect antar att ett datakällans namn, användar-ID och lösenord är tillräckliga för att ansluta till en datakälla och att ODBC-datakällan innehåller all annan information som ODBC-drivrutinen behöver för att göra anslutningen. Till skillnad från SQLDriverConnect och SQLBrowseConnect använder SQLConnect ingen reťazec pripojenia.
SQLDriverConnect
SQLDriverConnect används när mer information än bara datakällans namn, användar-ID och lösenord krävs. En av parametrarna i SQLDriverConnect är en reťazec pripojenia som innehåller drivrutinsspecifik information. Du kan använda SQLDriverConnect istället för SQLConnect av följande skäl:
Att specificera drivrutinsspecifik information vid anslutningstidpunkten.
Att begära att drivrutinen ber användaren om anslutningsinformation.
Att ansluta utan att använda en ODBC-datakälla.
SQLDriverConnect-connection string innehåller en serie nyckelord-värdepar som specificerar all anslutningsinformation som stöds av en ODBC-drivrutin. Varje drivrutin stöder standard ODBC-nyckelord (DSN, FILEDSN, DRIVER, UID, PWD och SAVEFILE) utöver drivrutinsspecifika nyckelord för all anslutningsinformation som stöds av drivrutinen. SQLDriverConnect kan användas för att ansluta utan datakälla. Till exempel kan en applikation som är designad för att skapa en "DSN-lös" anslutning till en instans av SQL Server anropa SQLDriverConnect med en reťazec pripojenia som definierar inloggnings-ID, lösenord, nätverksbibliotek, servernamn att ansluta till och standarddatabas att använda.
När man använder SQLDriverConnect finns det två alternativ för att be användaren om nödvändig anslutningsinformation:
Applikationsdialogruta
Du kan skapa en applikationsdialogruta som ber om anslutningsinformation och sedan anropar SQLDriverConnect med ett NULL-fönsterhandtag och DriverCompletion satt till SQL_DRIVER_NOPROMPT. Dessa parameterinställningar förhindrar att ODBC-drivrutinen öppnar sin egen dialogruta. Denna metod används när det är viktigt att kontrollera applikationens användargränssnitt.
Drivrutinsdialogruta
Du kan koda applikationen för att skicka ett giltigt fönsterhandtag till SQLDriverConnect och sätta parametern DriverCompletion till SQL_DRIVER_COMPLETE, SQL_DRIVER_PROMPT eller SQL_DRIVER_COMPLETE_REQUIRED. Drivrutinen genererar sedan en dialogruta för att be användaren om anslutningsinformation. Denna metod förenklar applikationskoden.
SQLBrowseConnect
SQLBrowseConnect, som SQLDriverConnect, använder en anslutningssträng. Genom att använda SQLBrowseConnect kan en applikation dock iterativt konstruera en komplett reťazec pripojenia med datakällan vid körning. På så sätt kan programmet göra två saker:
Bygg egna dialogrutor för att be om denna information, och behåll därmed kontrollen över användargränssnittet.
Bläddra i systemet efter datakällor som kan användas av en viss drivrutin, eventuellt i flera steg.
Användaren kan till exempel först bläddra i nätverket efter servrar och, efter att ha valt en server, bläddra på servern efter databaser som är tillgängliga för drivrutinen.
När SQLBrowseConnect slutför en lyckad anslutning returnerar den en reťazec pripojenia som kan användas vid efterföljande samtal till SQLDriverConnect.
Den SQL Server Native Client ODBC-drivrutinen returnerar alltid SQL_SUCCESS_WITH_INFO på en lyckad SQLConnect, SQLDriverConnect eller SQLBrowseConnect. När en ODBC-applikation anropar SQLGetDiagRec efter att ha fått SQL_SUCCESS_WITH_INFO kan den ta emot följande meddelanden:
5701
Indikerar att SQL Server lade användarens kontext i standarddatabasen som definieras i datakällan, eller i standarddatabasen som definieras för inloggnings-ID:t som användes i anslutningen om datakällan inte hade en standarddatabas.
5703
Indikerar vilket språk som används på servern.
Följande exempel visar meddelandet som returneras vid en lyckad anslutning av systemadministratören:
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'."
Du kan ignorera meddelanden 5701 och 5703; De är bara informationsbaserade. Du bör dock inte ignorera en SQL_SUCCESS_WITH_INFO returkod eftersom meddelanden som inte är 5701 eller 5703 kan returneras. Till exempel, om en drivrutin ansluter till en server som kör en instans av SQL Server med föråldrade kataloglagrade procedurer, är ett av felen som returneras via SQLGetDiagRec efter en 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."
Felhanteringsfunktionen för en applikation för SQL Server anslutningar bör anropa SQLGetDiagRec tills den returnerar SQL_NO_DATA. Den bör då agera på alla meddelanden utom de med pfNative-kod 5701 eller 5703.