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.
In het volgende voorbeeld ziet u hoe SQLBrowseConnect kan worden gebruikt om door de verbindingen te bladeren die beschikbaar zijn met een stuurprogramma voor SQL Server. Eerst vraagt de toepassing een verbindingsgreep aan:
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
Vervolgens roept de toepassing SQLBrowseConnect aan en geeft u het SQL Server-stuurprogramma op met behulp van de beschrijving van het stuurprogramma dat wordt geretourneerd door SQLDrivers:
SQLBrowseConnect(hdbc, "DRIVER={SQL Server};", SQL_NTS, BrowseResult,
sizeof(BrowseResult), &BrowseResultLen);
Omdat dit de eerste aanroep van SQLBrowseConnect is, laadt Driver Manager het SQL Server-stuurprogramma en roept de SQLBrowseConnect-functie van het stuurprogramma aan met dezelfde argumenten die het van de toepassing heeft ontvangen.
Opmerking
Als u verbinding maakt met een gegevensbronprovider die Ondersteuning biedt voor Windows-verificatie, moet u in plaats van gebruikers-id en wachtwoordgegevens opgeven Trusted_Connection=yes in de verbindingsreeks.
Het stuurprogramma bepaalt dat dit de eerste aanroep naar SQLBrowseConnect is en retourneert het tweede niveau van verbindingskenmerken: server, gebruikersnaam, wachtwoord, toepassingsnaam en werkstation-id. Voor het serverkenmerk wordt een lijst met geldige servernamen geretourneerd. De retourcode van SQLBrowseConnect is SQL_NEED_DATA. Dit is de bladerresultaatreeks:
"SERVER:Server={red,blue,green,yellow};UID:Login ID=?;PWD:Password=?;
*APP:AppName=?;*WSID:WorkStation ID=?;"
Elk trefwoord in de bladerresultaat-tekenreeks wordt gevolgd door een dubbelpunt en een of meer woorden vóór het gelijkteken. Deze woorden zijn de gebruiksvriendelijke naam die een toepassing kan gebruiken om een dialoogvenster te maken. De trefwoorden APP en WSID worden voorafgegaan door een sterretje, wat betekent dat ze optioneel zijn. De trefwoorden SERVER, UID en PWD worden niet voorafgegaan door een sterretje; waarden moeten worden opgegeven in de volgende bladeraanvraagtekenreeks. De waarde voor het trefwoord SERVER kan een van de servers zijn die worden geretourneerd door SQLBrowseConnect of een door de gebruiker opgegeven naam.
De toepassing roept SQLBrowseConnect opnieuw aan, waarbij de groene server wordt opgegeven en de trefwoorden APP en WSID en de gebruiksvriendelijke namen na elk trefwoord worden weggelaten:
SQLBrowseConnect(hdbc, "SERVER=green;UID=Smith;PWD=Sesame;", SQL_NTS,
BrowseResult, sizeof(BrowseResult), &BrowseResultLen);
Het stuurprogramma probeert verbinding te maken met de groene server. Als er niet-fatale fouten zijn, zoals een ontbrekend trefwoord-waardepaar, retourneert SQLBrowseConnect SQL_NEED_DATA en blijft deze dezelfde status hebben als vóór de fout. De toepassing kan SQLGetDiagField of SQLGetDiagRec aanroepen om de fout te bepalen. Als de verbinding is geslaagd, retourneert het stuurprogramma SQL_NEED_DATA en retourneert het bladerresultaattekenreeks:
"*DATABASE:Database={master,model,pubs,tempdb};
*LANGUAGE:Language={us_english,Franais};"
Omdat de kenmerken in deze tekenreeks optioneel zijn, kan de toepassing deze weglaten. De toepassing moet SQLBrowseConnect echter opnieuw aanroepen. Als de toepassing ervoor kiest om de naam en taal van de database weg te laten, geeft deze een lege tekenreeks voor bladeraanvragen op. In dit voorbeeld kiest de toepassing de pubs-database en roept SQLBrowseConnect een laatste keer aan, waarbij het trefwoord LANGUAGE en het sterretje voor het trefwoord DATABASE weglaten:
SQLBrowseConnect(hdbc, "DATABASE=pubs;", SQL_NTS, BrowseResult,
sizeof(BrowseResult), &BrowseResultLen);
Omdat het KENMERK DATABASE het uiteindelijke verbindingskenmerk is dat door het stuurprogramma is vereist, is het browseproces voltooid, is de toepassing verbonden met de gegevensbron en retourneert SQLBrowseConnect SQL_SUCCESS. SQLBrowseConnect retourneert ook de volledige connectiestring als de bladerresultaatstring:
"DSN=MySQLServer;SERVER=green;UID=Smith;PWD=Sesame;DATABASE=pubs;"
De uiteindelijke verbindingsreeks die door het stuurprogramma wordt geretourneerd, bevat niet de gebruiksvriendelijke namen na elk trefwoord, noch bevat deze optionele trefwoorden die niet zijn opgegeven door de toepassing. De toepassing kan deze tekenreeks gebruiken met SQLDriverConnect om opnieuw verbinding te maken met de gegevensbron in de huidige verbindingsgreep (nadat de verbinding is verbroken) of om verbinding te maken met de gegevensbron op een andere verbindingsgreep. Voorbeeld:
SQLDriverConnect(hdbc, hwnd, BrowseResult, SQL_NTS, ConnStrOut,
sizeof(ConnStrOut), &ConnStrOutLen, SQL_DRIVER_NOPROMPT);