SQLRemoveDriver-Funktion
Konformität
Version eingeführt: ODBC 3.0
Zusammenfassung
SQLRemoveDriver ändert oder entfernt Informationen zum Treiber aus dem Odbcinst.ini Eintrag in den Systeminformationen.
Syntax
BOOL SQLRemoveDriver(
LPCSTR lpszDriver,
BOOL fRemoveDSN,
LPDWORD lpdwUsageCount);
Argumente
lpszDriver
[Eingabe] Der Name des Treibers, der im Odbcinst.ini Schlüssel der Systeminformationen registriert ist.
fRemoveDSN
[Eingabe] Die gültigen Werte sind:
TRUE: Entfernen Sie DSNs, die dem in lpszDriver angegebenen Treiber zugeordnet sind. FALSE: Entfernen Sie keine DSNs, die dem in lpszDriver angegebenen Treiber zugeordnet sind.
lpdwUsageCount
[Ausgabe] Die Nutzungsanzahl des Treibers, nachdem diese Funktion aufgerufen wurde.
Gibt zurück
Die Funktion gibt TRUE zurück, wenn sie erfolgreich ist, FALSE, wenn sie fehlschlägt. Wenn beim Aufruf dieser Funktion kein Eintrag in den Systeminformationen vorhanden ist, gibt die Funktion FALSE zurück.
Diagnose
Wenn SQLRemoveDriver FALSE zurückgibt, kann ein zugeordneter *pfErrorCode-Wert abgerufen werden, indem SQLInstallerError aufgerufen wird. In der folgenden Tabelle sind die *pfErrorCode-Werte aufgeführt, die von SQLInstallerError zurückgegeben werden können, und die einzelnen Werte im Kontext dieser Funktion werden erläutert.
*pfErrorCode | Fehler | BESCHREIBUNG |
---|---|---|
ODBC_ERROR_GENERAL_ERR | Allgemeiner Installationsfehler | Es ist ein Fehler aufgetreten, für den kein spezifischer Installerfehler aufgetreten ist. |
ODBC_ERROR_COMPONENT_NOT_FOUND | Komponente nicht in der Registrierung gefunden | Das Installationsprogramm konnte die Treiberinformationen nicht entfernen, da sie entweder nicht in der Registrierung vorhanden waren oder nicht in der Registrierung gefunden werden konnten. |
ODBC_ERROR_INVALID_NAME | Ungültiger Treiber- oder Übersetzername | Das argument lpszDriver war ungültig. |
ODBC_ERROR_USAGE_UPDATE_FAILED | Die Anzahl der Komponentennutzung konnte nicht erhöht oder verringert werden. | Das Installationsprogramm konnte die Nutzungsanzahl des Treibers nicht erhöhen. |
ODBC_ERROR_REQUEST_FAILED | Fehler bei der Anforderung | Das fRemoveDSN-Argument lautet TRUE. ein oder mehrere DSNs konnten jedoch nicht entfernt werden. Beim Aufruf von SQLConfigDriver mit der ODBC_REMOVE_DRIVER Anforderung ist ein Fehler aufgetreten. |
ODBC_ERROR_OUT_OF_MEM | Nicht genügend Arbeitsspeicher. | Das Installationsprogramm konnte die Funktion aufgrund eines Mangels an Arbeitsspeicher nicht ausführen. |
Kommentare
SQLRemoveDriver ergänzt die SQLInstallDriverEx-Funktion und aktualisiert die Anzahl der Komponentennutzung in den Systeminformationen. Diese Funktion sollte nur von einer Setupanwendung aufgerufen werden.
SQLRemoveDriver dekrementiert den Wert der Komponentennutzungsanzahl um 1. Wenn die Anzahl der Komponentennutzung auf 0 lautet, tritt Folgendes auf:
Die SQLConfigDriver-Funktion mit der Option ODBC_REMOVE_DRIVER wird aufgerufen. Wenn die Option fRemoveDSN auf TRUE festgelegt ist, ruft die ConfigDSN-FunktionSQLRemoveDSNFromIni auf, um alle Datenquellen zu entfernen, die dem in lpszDriver angegebenen Treiber zugeordnet sind. Wenn die Option fRemoveDSN auf FALSE festgelegt ist, werden die Datenquellen nicht gelöscht.
Der Treibereintrag in den Systeminformationen wird entfernt. Der Treibereintrag befindet sich unter dem Namen des Treibers am folgenden Speicherort für Systeminformationen:
HKEY_LOCAL_MACHINE
SOFTWARE
ODBC
Odbcinst.ini
SQLRemoveDriver entfernt eigentlich keine Dateien. Das aufrufende Programm ist für das Löschen von Dateien und die Beibehaltung der Anzahl der Dateinutzungen verantwortlich. Erst nachdem sowohl die Anzahl der Komponentennutzung als auch die Anzahl der Dateinutzungen 0 erreicht haben, wird eine Datei physisch gelöscht. Einige Dateien in einer Komponente können gelöscht und andere nicht gelöscht werden, je nachdem, ob die Dateien von anderen Anwendungen verwendet werden, die die Anzahl der Dateinutzung erhöht haben.
SQLRemoveDriver wird auch als Teil eines Upgradeprozesses aufgerufen. Wenn eine Anwendung erkennt, dass sie ein Upgrade durchführen muss und den Treiber zuvor installiert hat, sollte der Treiber entfernt und dann erneut installiert werden. SQLRemoveDriver sollte zuerst aufgerufen werden, um die Anzahl der Komponentennutzung zu verringern, und dann SQLInstallDriverEx sollte aufgerufen werden, um die Anzahl der Komponentennutzung zu erhöhen. Das Programm zum Einrichten der Anwendung muss die alten Dateien durch die neuen Dateien ersetzen. Die Anzahl der Dateiverwendungen bleibt unverändert, und andere Anwendungen, die dateien der älteren Version verwenden, verwenden jetzt die neuere Version.
Verwandte Funktionen
Informationen über | Finden Sie unter |
---|---|
Hinzufügen, Ändern oder Entfernen eines Treibers | ConfigDriver (in der Setup-DLL) |
Hinzufügen, Ändern oder Entfernen eines Treibers | SQLConfigDriver |
Installieren eines Treibers | SQLInstallDriverEx |