Delen via


SQLDisconnect, functie

conformance
Versie geïntroduceerd: NALEVING van ODBC 1.0-standaarden: ISO 92

Samenvattings-
SQLDisconnect sluit de verbinding die is gekoppeld aan een specifieke verbindingsgreep.

Syntaxis

  
SQLRETURN SQLDisconnect(  
     SQLHDBC     ConnectionHandle);  

Argumenten

ConnectionHandle-
[Invoer] Verbindingsgreep.

Retourneert

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_INVALID_HANDLE of SQL_STILL_EXECUTING.

Diagnostiek

Wanneer SQLDisconnect SQL_ERROR of SQL_SUCCESS_WITH_INFO retourneert, kan een bijbehorende SQLSTATE-waarde worden verkregen door SQLGetDiagRec- aan te roepen met een HandleType- van SQL_HANDLE_DBC en een Handle van ConnectionHandle-. De volgende tabel bevat de SQLSTATE-waarden die vaak worden geretourneerd door SQLDisconnect en legt elke waarden uit in de context van deze functie; de notatie (DM)' voorafgaat aan de beschrijvingen van SQLSTATEs die worden geretourneerd door Driver Manager. De retourcode die is gekoppeld aan elke SQLSTATE-waarde is SQL_ERROR, tenzij anders vermeld.

SQLSTATE Fout Beschrijving
01000 Algemene waarschuwing Stuurprogrammaspecifiek informatiebericht. (Functie retourneert SQL_SUCCESS_WITH_INFO.)
01002 Fout bij verbreken Er is een fout opgetreden tijdens de verbinding. De verbinding is echter voltooid. (Functie retourneert SQL_SUCCESS_WITH_INFO.)
08003 Verbinding niet geopend (DM) De verbinding die is opgegeven in het argument ConnectionHandle niet is geopend.
25000 Ongeldige transactiestatus Er is een transactie uitgevoerd voor de verbinding die is opgegeven door het argument ConnectionHandle. De transactie blijft actief.
HY000 Algemene fout Er is een fout opgetreden waarvoor er geen specifieke SQLSTATE is en waarvoor geen implementatiespecifieke SQLSTATE is gedefinieerd. Het foutbericht dat is geretourneerd door SQLGetDiagRec- in de *MessageText buffer beschrijft de fout en de oorzaak ervan.
HY001 Fout bij geheugentoewijzing Het stuurprogramma kan geen geheugen toewijzen dat nodig is om de uitvoering of voltooiing van de functie te ondersteunen.
HY008 Bewerking geannuleerd Asynchrone verwerking is ingeschakeld voor de ConnectionHandle-. De functie is aangeroepen en voordat de SQLCancelHandle-functie is uitgevoerd, is aangeroepen op de ConnectionHandle-. Vervolgens is de functie opnieuw aangeroepen op de ConnectionHandle-.

De functie is aangeroepen en voordat het uitvoeren van SQLCancelHandle- werd aangeroepen op de ConnectionHandle- vanuit een andere thread in een multithread-toepassing.
HY010 Fout in functiereeks (DM) Er is een asynchroon uitgevoerde functie aangeroepen voor een StatementHandle- die is gekoppeld aan de ConnectionHandle- en werd nog steeds uitgevoerd toen SQLDisconnect- werd aangeroepen.

(DM) Een asynchroon uitgevoerde functie (niet deze) is aangeroepen voor de ConnectionHandle- en werd nog steeds uitgevoerd toen deze functie werd aangeroepen.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperationsof SQLSetPos is aangeroepen voor een StatementHandle- die is gekoppeld aan de ConnectionHandle- en SQL_NEED_DATA is geretourneerd. Deze functie is aangeroepen voordat gegevens werden verzonden voor alle parameters of kolommen voor uitvoering van gegevens.
HY013 Fout bij geheugenbeheer De functie-aanroep kan niet worden verwerkt omdat de onderliggende geheugenobjecten niet kunnen worden geopend, mogelijk vanwege weinig geheugen.
HY117 De verbinding is onderbroken vanwege een onbekende transactiestatus. Alleen de verbinding verbreken en alleen-lezenfuncties zijn toegestaan. (DM) Zie SQLEndTran Functionvoor meer informatie over de onderbroken status.
HYT01 Time-out voor verbinding verlopen De time-outperiode voor de verbinding is verlopen voordat de gegevensbron op de aanvraag heeft gereageerd en de verbinding nog steeds actief is. De time-outperiode voor de verbinding wordt ingesteld via SQLSetConnectAttr-, SQL_ATTR_CONNECTION_TIMEOUT.
IM001 Stuurprogramma biedt geen ondersteuning voor deze functie (DM) Het stuurprogramma dat is gekoppeld aan de ConnectionHandle- biedt geen ondersteuning voor de functie.
IM017 Polling is uitgeschakeld in de asynchrone meldingsmodus Wanneer het meldingsmodel wordt gebruikt, wordt polling uitgeschakeld.
IM018 SQLCompleteAsync- is niet aangeroepen om de vorige asynchrone bewerking op deze ingang te voltooien. Als de vorige functieaanroep op de ingang SQL_STILL_EXECUTING retourneert en als de meldingsmodus is ingeschakeld, moet SQLCompleteAsync- worden aangeroepen op de ingang om de bewerking na verwerking uit te voeren en de bewerking te voltooien.

Opmerkingen

Als een toepassing SQLDisconnect aanroept nadat SQLBrowseConnect SQL_NEED_DATA retourneert en voordat er een andere retourcode wordt geretourneerd, annuleert het stuurprogramma het browserproces voor de verbinding en retourneert de verbinding met een niet-verbonden status.

Als een toepassing SQLDisconnect aanroept terwijl er een onvolledige transactie is gekoppeld aan de verbindingsgreep, retourneert het stuurprogramma SQLSTATE 25000 (ongeldige transactiestatus), wat aangeeft dat de transactie ongewijzigd is en de verbinding is geopend. Een onvolledige transactie is een transactie die niet is doorgevoerd of teruggedraaid met SQLEndTran-.

Als een toepassing SQLDisconnect aanroept voordat alle instructies zijn vrijgemaakt die aan de verbinding zijn gekoppeld, maakt het stuurprogramma, nadat de verbinding met de gegevensbron is verbroken, deze instructies en alle descriptors vrij die expliciet zijn toegewezen aan de verbinding. Als een of meer van de instructies die aan de verbinding zijn gekoppeld, echter nog asynchroon worden uitgevoerd, retourneert SQLDisconnect SQL_ERROR met een SQLSTATE-waarde van HY010 (functiereeksfout). Bovendien worden SQLDisconnect- alle bijbehorende instructies en alle descriptors die expliciet zijn toegewezen aan de verbinding, vrijgemaakt als de verbinding een onderbroken status heeft of als SQLDisconnect- is geannuleerd door SQLCancelHandle-.

Zie Verbinding verbreken met een gegevensbron of stuurprogrammavoor informatie over hoe een toepassing gebruikmaakt van SQLDisconnect.

Verbinding met een gegroepeerde verbinding verbreken

Als groepsgewijze verbindingen is ingeschakeld voor een gedeelde omgeving en een toepassing SQLDisconnect op een verbinding in die omgeving, wordt de verbinding geretourneerd naar de verbindingsgroep en is deze nog steeds beschikbaar voor andere onderdelen met dezelfde gedeelde omgeving.

Codevoorbeeld

Zie ODBC-voorbeeldprogramma, SQLBrowseConnect-functieen SQLConnect-functie.

Voor informatie over Zien
Een ingang toewijzen SQLAllocHandle-functie
Verbinding maken met een gegevensbron SQLConnect-functie
Verbinding maken met een gegevensbron met behulp van een verbindingsreeks of dialoogvenster SQLDriverConnect-functie
Een doorvoer- of terugdraaibewerking uitvoeren SQLEndTran-functie
Een verbindingsgreep vrijmaken SQLFreeConnect-functie

Zie ook

ODBC-API-verwijzing
ODBC-headerbestanden