Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2019 (15.x) und höhere Versionen
Sie können das Erweiterbarkeitsframework verwenden, um Programmiersprachenerweiterungen für SQL Server zu schreiben. Die Extensibility Framework-API für SQL Server ist eine API, die von einer Spracherweiterung verwendet werden kann, um mit SQL Server zu interagieren und Daten auszutauschen.
Als Ersteller einer Programmiersprachenerweiterung können Sie diese Referenz und die Open-Source-Programmiersprachenerweiterungen verwenden, um ein Verständnis dafür zu erwerben, wie Sie die API zum Schreiben eigener Programmiersprachenerweiterungen verwenden können. Den Quellcode für die Programmiersprachenerweiterungen finden Sie unter aka.ms/mssql-lang-extensions.
Die Informationen zu Syntax und Argumenten zu allen API-Funktionen finden Sie in diesem Artikel.
Rückgabewert
Alle Funktionen geben einen SQLRETURN Parameter zurück. Wenn der Wert etwas anderes SQL_SUCCESSals ist, wird der Wert als Fehler behandelt, und die Ausführung des Skripts wird beendet.
Standardausgabe
Jede Ausgabe der Erweiterung an die Standardausgabe- oder Fehlerdatenströme wird in die Protokolldatei der Sitzung nachverfolgt und schließlich auf SQL Server zurückverfolgt. Dies ähnelt allen Elementen, die auf der Registerkarte "SQL Server Management Studio(SSMS)"-Nachrichten angezeigt werden.
Init
Diese Funktion wird nur einmal aufgerufen und zum Initialisieren der Laufzeit für die Ausführung verwendet.
Syntax
SQLRETURN Init(
SQLCHAR *ExtensionParams,
SQLULEN ExtensionParamsLength,
SQLCHAR *ExtensionPath,
SQLULEN ExtensionPathLength,
SQLCHAR *PublicLibraryPath,
SQLULEN PublicLibraryPathLength,
SQLCHAR *PrivateLibraryPath,
SQLULEN PrivateLibraryPathLength
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
ExtensionParams |
Eingabe | Null-terminierte Zeichenkette mit PARAMETERS dem während oder angegebenen Wert CREATE EXTERNAL LANGUAGEALTER EXTERNAL LANGUAGE |
ExtensionParamsLength |
Eingabe | Länge in Bytes von ExtensionParams (mit Ausnahme des Null-Beendigungszeichens) |
ExtensionPath |
Eingabe | UTF-8-Zeichenfolge, die den absoluten Pfad zum Installationsverzeichnis der Erweiterung enthält |
ExtensionPathLength |
Eingabe | Länge in Bytes von ExtensionPath (mit Ausnahme des Null-Beendigungszeichens) |
PublicLibraryPath |
Eingabe | UTF-8-Zeichenfolge, die den absoluten Pfad zum Verzeichnis der öffentlichen externen Bibliotheken für diese externe Sprache enthält |
PublicLibraryPathLength |
Eingabe | Länge in Bytes von PublicLibraryPath (mit Ausnahme des Null-Beendigungszeichens) |
PrivateLibraryPath |
Eingabe | UTF-8-Zeichenfolge mit Null beendet, die den absoluten Pfad zum Verzeichnis für private externe Bibliotheken für diesen Benutzer und diese externe Sprache enthält |
PrivateLibraryPathLength |
Eingabe | Länge in Bytes von PrivateLibraryPath (mit Ausnahme des Null-Beendigungszeichens) |
InitSession
Diese Funktion wird einmal pro Sitzung aufgerufen und initialisiert sitzungsspezifische Einstellungen.
Syntax
SQLRETURN InitSession(
SQLGUID SessionId,
SQLUSMALLINT TaskId,
SQLCHAR* Script,
SQLULEN ScriptLength,
SQLUSMALLINT InputSchemaColumnsNumber,
SQLUSMALLINT ParametersNumber
SQLCHAR* InputDataName,
SQLUSMALLINT InputDataNameLength,
SQLCHAR* OutputDataName,
SQLUSMALLINT OutputDataNameLength
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
TaskId |
Eingabe | Eine ganze Zahl, die diesen Ausführungsprozess eindeutig identifiziert.@parallel
In 1 sp_execute_external_script liegt dieser Wert zwischen 0 dem Grad der Parallelität der Abfrage. |
Script |
Eingabe | UTF-8-Zeichenfolge, die den @script in sp_execute_external_script |
ScriptLength |
Eingabe | Länge in Bytes von ScriptScript (mit Ausnahme des Null-Beendigungszeichens) |
InputSchemaColumnsNumber |
Eingabe | Anzahl der Spalten im Resultset aus @input_data_1 sp_execute_external_script |
ParametersNumber |
Eingabe | Anzahl der Eingabeparameter aus @params sp_execute_external_script |
InputDataName |
Eingabe | UTF-8-Zeichenfolge, die den @input_data_1_name in sp_execute_external_script |
InputDataNameLength |
Eingabe | Länge in Bytes von InputDataName (mit Ausnahme des Null-Beendigungszeichens) |
OutputDataName |
Eingabe | UTF-8-Zeichenfolge, die den @output_data_1_name in sp_execute_external_script |
OutputDataNameLength |
Eingabe | Länge in Bytes von OutputDataName (mit Ausnahme des Null-Beendigungszeichens) |
InitColumn
Initialisieren Sie die Informationen für eine bestimmte Spalte für eine bestimmte Sitzung.
Diese Funktion wird für jede Spalte im Resultset aus @input_data_1 in sp_execute_external_script aufgerufen.
Die Spaltenstruktur dieses Resultsets wird als Eingabeschema bezeichnet.
Syntax
SQLRETURN InitColumn(
SQLGUID SessionId,
SQLUSMALLINT TaskId,
SQLUSMALLINT ColumnNumber,
SQLCHAR* ColumnName,
SQLSMALLINT ColumnNameLength,
SQLSMALLINT DataType,
SQLULEN ColumnSize,
SQLSMALLINT DecimalDigits,
SQLSMALLINT Nullable,
SQLSMALLINT PartitionByNumber,
SQLSMALLINT OrderByNumber
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
TaskId |
Eingabe | Eine ganze Zahl, die diesen Ausführungsprozess eindeutig identifiziert.@parallel
In 1 sp_execute_external_script liegt dieser Wert zwischen 0 dem Grad der Parallelität der Abfrage. |
ColumnNumber |
Eingabe | Eine ganze Zahl, die den Index dieser Spalte im Eingabeschema identifiziert. Spalten werden sequenziell in erhöhter Reihenfolge nummeriert, beginnend bei 0 |
ColumnName |
Eingabe | UTF-8-Zeichenfolge mit Null-Gekündigt, die den Namen der Spalte enthält |
ColumnNameLength |
Eingabe | Länge in Bytes von ColumnName (mit Ausnahme des Null-Beendigungszeichens) |
Data type |
Eingabe | Der ODBC-C-Typ, der den Datentyp dieser Spalte identifiziert |
ColumnSize |
Eingabe | Die maximale Größe in Byte der zugrunde liegenden Daten in dieser Spalte. Für SQL_C_CHARund SQL_C_WCHARSQL_C_BINARY Datentypen geben Werte, die größer als 8.000 sind, diese Spalte ein LOB-Objekt mit einer Größe von bis zu 2 GB. |
DecimalDigits |
Eingabe | Die Dezimalziffern der zugrunde liegenden Daten in dieser Spalte, wie durch Dezimalziffern definiert |
Nullable |
Eingabe | Ein Wert, der angibt, ob diese Spalte Werte enthalten NULL kann. Mögliche Werte:- SQL_NO_NULLS: Die Spalte darf keine Werte enthalten NULL .- SQL_NULLABLE: Die Spalte kann Werte enthalten NULL . |
PartitionByNumber |
Eingabe | Ein Wert, der den Index dieser Spalte in der @input_data_1_partition_by_columns Sequenz in sp_execute_external_script angibt. Spalten werden sequenziell in zunehmender Reihenfolge nummeriert, beginnend bei 0. Wenn diese Spalte nicht in der Sequenz enthalten ist, lautet der Wert -1. |
OrderByNumber |
Eingabe | Ein Wert, der den Index dieser Spalte in der @input_data_1_order_by_columns Sequenz in sp_execute_external_script angibt. Spalten werden sequenziell in zunehmender Reihenfolge nummeriert, beginnend bei 0. Wenn diese Spalte nicht in der Sequenz enthalten ist, lautet der Wert -1. |
InitParam
Initialisieren Sie die Informationen zu einem angegebenen Eingabeparameter für eine bestimmte Sitzung.
Diese Funktion wird für jeden Parameter aus @params in sp_execute_external_script aufgerufen.
Syntax
SQLRETURN InitParam(
SQLGUID SessionId,
SQLUSMALLINT TaskId,
SQLUSMALLINT ParamNumber,
SQLCHAR* ParamName,
SQLSMALLINT ParamNameLength,
SQLSMALLINT DataType,
SQLULEN ParamSize,
SQLSMALLINT DecimalDigits,
SQLPOINTER ParamValue,
SQLINTEGER StrLen_or_Ind,
SQLSMALLINT InputOutputType
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
TaskId |
Eingabe | Eine ganze Zahl, die diesen Ausführungsprozess eindeutig identifiziert.@parallel
In 1 sp_execute_external_script liegt dieser Wert zwischen 0 dem Grad der Parallelität der Abfrage. |
ParamNumber |
Eingabe | Eine ganze Zahl, die den Index dieses Parameters angibt. Parameter werden sequenziell in erhöhter Reihenfolge nummeriert, beginnend bei 0 |
ParamName |
Eingabe | UTF-8-Zeichenfolge mit Null-Gekündigt, die den Namen des Parameters enthält |
ParamNameLength |
Eingabe | Länge in Bytes von ParamName (mit Ausnahme des Null-Beendigungszeichens) |
Data type |
Eingabe | Der ODBC-C-Typ, der den Datentyp dieses Parameters identifiziert |
ParamSize |
Eingabe | Die maximale Größe in Byte der zugrunde liegenden Daten in diesem Parameter. Für SQL_C_CHARDatentypen SQL_C_WCHAR und SQL_C_BINARY Datentypen geben Werte, die größer als 8000 sind, diesen Parameter als LOBs-Objekt und mit einer Größe von bis zu 2 GB an. |
DecimalDigits |
Eingabe | Die Dezimalziffern der zugrunde liegenden Daten in diesem Parameter, wie durch Dezimalziffern definiert |
ParamValue |
Eingabe | Ein Zeiger auf einen Puffer, der den Wert des Parameters enthält |
StrLen_or_Ind |
Eingabe | Ein ganzzahliger Wert, der die Länge in Bytes angibt ParamValue, oder SQL_NULL_DATA um anzugeben, dass die Daten sind NULL.StrLen_or_Ind[col] kann ignoriert werden, wenn eine Spalte nicht nullfähig ist und keinen der folgenden Datentypen darstellt: SQL_C_CHAR, SQL_C_WCHAR und , und SQL_C_BINARY, SQL_C_NUMERIC oder SQL_C_TYPE_TIMESTAMP. Andernfalls verweist es auf ein gültiges Array mit RowsNumber Elementen, wobei jedes Element seine Längen- oder NULL-Indikatordaten enthält. |
InputOutputType |
Eingabe | Der Typ des -Parameters. Das InputOutputType Argument ist einer der folgenden Werte:- SQL_PARAM_INPUT- SQL_PARAM_INPUT_OUTPUT |
Execute
Führen Sie das @script in sp_execute_external_script aus.
Diese Funktion kann mehrmals aufgerufen werden. einmal pro Steam-Block und pro Partition in @input_data_1_partition_by_columns in sp_execute_external_script.
Syntax
SQLRETURN Execute(
SQLGUID SessionId,
SQLUSMALLINT TaskId,
SQLULEN RowsNumber,
SQLPOINTER* Data,
SQLINTEGER** StrLen_or_Ind,
SQLUSMALLINT* OutputSchemaColumnsNumber
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
TaskId |
Eingabe | Eine ganze Zahl, die diesen Ausführungsprozess eindeutig identifiziert.@parallel
In 1 sp_execute_external_script liegt dieser Wert zwischen 0 dem Grad der Parallelität der Abfrage. |
RowsNumber |
Eingabe | Die Anzahl der Zeilen in der Data |
Data |
Eingabe | Ein zweidimensionales Array, das den Resultset @input_data_1 in sp_execute_external_script enthält.Die Gesamtanzahl der Spalten ist InputSchemaColumnsNumber , die im InitSession-Aufruf empfangen wurde. Jede Spalte enthält RowsNumber Elemente, die gemäß dem Spaltentyp von InitColumn interpretiert werden sollen.Elemente, die angegeben sind NULLStrLen_or_Ind , sind nicht garantiert gültig und sollten ignoriert werden. |
StrLen_or_Ind |
Eingabe | Ein zweidimensionales Array, das den Längen-/NULL-Indikator für jeden Wert in Dataenthält. Mögliche Werte für jede Zelle:- n, wobei n > 0. Dieser Wert gibt die Länge der Daten in Bytes an.- SQL_NULL_DATA, der einen NULL Wert angibt.Die Gesamtanzahl der Spalten ist InputSchemaColumnsNumber , die im InitSession-Aufruf empfangen wurde. Jede Spalte enthält RowsNumber Elemente, die gemäß dem Spaltentyp von InitColumn interpretiert werden sollen.StrLen_or_Ind[col]kann ignoriert werden, wenn eine Spalte nicht nullfähig ist und keinen der folgenden Datentypen darstellt: SQL_C_CHARund , und , SQL_C_WCHAR oder SQL_C_BINARYSQL_C_NUMERIC. SQL_C_TYPE_TIMESTAMP Andernfalls verweist es auf ein gültiges Array mit RowsNumber Elementen, jedes Element enthält seine Längen- oder NULL-Indikatordaten. |
OutputSchemaColumnsNumber |
Output | Zeiger auf einen Puffer, in dem die Anzahl der Spalten im erwarteten Resultset der @script in sp_execute_external_script |
GetResultColumn
Rufen Sie die Informationen zu einer angegebenen Ausgabespalte für eine bestimmte Sitzung ab.
Diese Funktion wird für jede Spalte im Resultset aus @script in sp_execute_external_script aufgerufen.
Die Spaltenstruktur dieses Resultsets wird als Ausgabeschema bezeichnet.
Syntax
SQLRETURN GetResultColumn(
SQLGUID SessionId,
SQLUSMALLINT TaskId,
SQLUSMALLINT ColumnNumber,
SQLSMALLINT* DataType,
SQLINTEGER* ColumnSize,
SQLSMALLINT* DecimalDigits,
SQLSMALLINT* Nullable
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
TaskId |
Eingabe | Eine ganze Zahl, die diesen Ausführungsprozess eindeutig identifiziert.@parallel
In 1 sp_execute_external_script liegt dieser Wert zwischen 0 dem Grad der Parallelität der Abfrage. |
ColumnNumber |
Eingabe | Eine ganze Zahl, die den Index dieser Spalte im Ausgabeschema identifiziert. Spalten werden sequenziell in erhöhter Reihenfolge nummeriert, beginnend bei 0 |
Data type |
Output | Ein Zeiger auf den Puffer, der den ODBC-C-Typ enthält, der den Datentyp dieser Spalte identifiziert |
ColumnSize |
Output | Ein Zeiger auf einen Puffer, der die maximale Größe in Byte der zugrunde liegenden Daten in dieser Spalte enthält |
DecimalDigits |
Output | Ein Zeiger auf einen Puffer, der die Dezimalziffern der zugrunde liegenden Daten in dieser Spalte enthält, wie durch Dezimalziffern definiert. Wenn die Anzahl der Dezimalziffern nicht bestimmt werden kann oder nicht anwendbar ist, wird der Wert verworfen. |
Nullable |
Output | Ein Zeiger auf einen Puffer, der einen Wert enthält, der angibt, ob diese Spalte Werte enthalten NULL kann. Mögliche Werte:- SQL_NO_NULLS: Die Spalte darf keine Werte enthalten NULL .- SQL_NULLABLE: Die Spalte kann Werte enthalten NULL .Wenn andere Werte übergeben werden, wird die Ausführung beendet. |
GetResults
Rufen Sie das Resultset aus der Ausführung von @script in sp_execute_external_script ab.
Diese Funktion kann mehrmals aufgerufen werden. einmal pro Steam-Block und pro Partition in @input_data_1_partition_by_columns in sp_execute_external_script.
Syntax
SQLRETURN GetResults(
SQLGUID SessionId,
SQLUSMALLINT TaskId,
SQLULEN* RowsNumber,
SQLPOINTER** Data,
SQLINTEGER*** StrLen_or_Ind
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
TaskId |
Eingabe | Eine ganze Zahl, die diesen Ausführungsprozess eindeutig identifiziert.@parallel
In 1 sp_execute_external_script liegt dieser Wert zwischen 0 dem Grad der Parallelität der Abfrage. |
RowsNumber |
Output | Ein Zeiger auf einen Puffer, der die Anzahl der Zeilen in der Data |
Data |
Output | Ein Zeiger auf ein zweidimensionales Array, das der Erweiterung zugeordnet ist, die den Resultset in @scriptsp_execute_external_script enthält.Die Gesamtanzahl der Spalten sollte darin OutputSchemaColumnsNumber bestehen, dass im Execute-Aufruf abgerufen wurde. Jede Spalte sollte Elemente enthalten RowsNumber , die gemäß dem Spaltentyp von GetResultColumn interpretiert werden sollen. |
StrLen_or_Ind |
Output | Ein Zeiger auf ein zweidimensionales Array, das der Erweiterung zugeordnet ist, die den Längen-/NULL-Indikator für jeden Wert enthält.Data Mögliche Werte für jede Zelle:- n, wobei n > 0. Dieser Wert gibt die Länge der Daten in Bytes an.- SQL_NULL_DATA, der einen NULL Wert angibt.Die Gesamtanzahl der Spalten sollte sein OutputSchemaColumnsNumber , die im Execute-Aufruf empfangen wurden. Jede Spalte enthält RowsNumber Elemente, die gemäß dem Spaltentyp von GetResultColumn interpretiert werden sollen.StrLen_or_Ind[col]wird ignoriert, wenn eine Spalte nicht nullfähig ist und keinen der folgenden Datentypen darstellt: SQL_C_CHARSQL_C_WCHAR und SQL_C_BINARY[add dates]. Andernfalls verweist es auf ein gültiges Array mit RowsNumber Elementen, jedes Element enthält seine Längen- oder NULL-Indikatordaten. |
GetOutputParam
Rufen Sie die Informationen zu einem angegebenen Ausgabeparameter für eine bestimmte Sitzung ab.
Diese Funktion wird für jeden Parameter aus @params sp_execute_external_script aufgerufen, der mit OUTPUTgekennzeichnet ist.
Syntax
SQLRETURN GetOutputParam(
SQLGUID SessionId,
SQLUSMALLINT ParamNumber,
SQLPOINTER* ParamValue,
SQLINTEGER* StrLen_or_Ind
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
ParamValue |
Output | Ein Zeiger auf einen Puffer, der den Wert des Parameters enthält |
StrLen_or_Ind |
Output | Ein Zeiger auf einen Puffer, der einen ganzzahligen Wert enthält, der die Länge in Byte ParamValueangibt, oder SQL_NULL_DATA um anzugeben, dass die Daten NULL |
GetInterfaceVersion
Rufen Sie die Schnittstellenversion ab.
Diese Funktion gibt eine ganze Zahl zurück, die die Schnittstellenversion der Erweiterung darstellt.
Unterstützte Werte:
- Bei Version 1 handelt es sich um die erste API-Version. Unterstützt bei SQL Server 2019 (15.x) RTM.
- Version 2 hat Unterstützung für
InstallExternalLibraryundUninstallExternalLibraryAPI hinzugefügt und wird von SQL Server 2019 (15.x) CU 3 unterstützt.
Syntax
SQLUSMALLINT GetInterfaceVersion();
CleanupSession
Bereinigen Sie sitzungsspezifische Informationen.
Syntax
SQLRETURN CleanupSession(
SQLGUID SessionId,
SQLUSMALLINT TaskId
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
TaskId |
Eingabe | Eine ganze Zahl, die diesen Ausführungsprozess eindeutig identifiziert.@parallel
In 1 sp_execute_external_script liegt dieser Wert zwischen 0 dem Grad der Parallelität der Abfrage. |
Cleanup
Bereinigen Sie globale, freigegebene Informationen (z. B. JVM).
Syntax
SQLRETURN Cleanup();
GetTelemetryResults
Dieser Wert ruft Telemetriedaten (Schlüssel-Wert-Paare) aus der Erweiterung ab. Die Funktion ist optional und erfordert keine Implementierung. Die Telemetriedaten werden von der dynamischen Verwaltungssicht (DMV) dm_db_external_script_execution_stats verfügbar gemacht.
Es gibt einen Zähler namens script_executions, der vom Framework gesendet wird. Die Erweiterung sollte diesen Namen nicht verwenden.
Bei jedem Telemetrieeintrag handelt es sich um ein Schlüssel-Wert-Paar. Die Schlüssel sind Zeichenfolgen. Die Werte sind 64-Bit-Ganzzahlen oder Zähler. Daher besteht die Ausgabe aus zwei logischen Arrays: den Namen und den entsprechenden Zählern. Bei jedem Array handelt es sich um eine Ausgabe.
Die Länge der einzelnen Arrays ist RowsNumbereine Ausgabe. Die erste logische Ausgabe enthält Zeiger auf Zeichenfolgen. Sie wird durch zwei Arrays dargestellt: CounterNames (die tatsächlichen Zeichenfolgendaten) und CounterNamesLength (die Länge der einzelnen Zeichenfolgen). Die zweite logische Ausgabe wird im CounterValues Zeiger gespeichert.
Syntax
SQLRETURN GetTelemetryResults(
SQLGUID SessionId,
SQLUSMALLINT TaskId,
SQLUINTEGER *RowsNumber,
SQLCHAR ***CounterNames,
SQLINTEGER **CounterNamesLength,
SQLBIGINT **CounterValues
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
TaskId |
Eingabe | Eine ganze Zahl, die diesen Ausführungsprozess eindeutig identifiziert.@parallel
In 1 sp_execute_external_script liegt dieser Wert zwischen 0 dem Grad der Parallelität der Abfrage. |
RowsNumber |
Output | Die Anzahl der Schlüsselwertpaare |
CounterNames |
Output | Die Zeichenfolgendaten, die die Schlüssel enthalten |
CounterNamesLength |
Output | Die Länge der einzelnen Schlüsselzeichenfolgen |
CounterValues |
Output | Die 64-Bit-Ganzzahldaten, die die Werte enthalten |
InstallExternalLibrary
Dieser Wert installiert eine Bibliothek. Die Funktion ist optional und erfordert keine Implementierung. Die Standardimplementierung besteht darin, den Inhalt der Bibliothek (siehe CREATE EXTERNAL LIBRARY) in eine Datei am richtigen Ort zu kopieren. Der Dateiname ist der Bibliotheksname.
Syntax
SQLRETURN InstallExternalLibrary(
SQLGUID SetupSessionId,
SQLCHAR *LibraryName,
SQLINTEGER LibraryNameLength,
SQLCHAR *LibraryFile,
SQLINTEGER LibraryFileLength,
SQLCHAR *LibraryInstallDirectory,
SQLINTEGER LibraryInstallDirectoryLength,
SQLCHAR **LibraryError,
SQLINTEGER *LibraryErrorLength
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SetupSessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
LibraryName |
Eingabe | Der Bibliotheksname |
LibraryNameLength |
Eingabe | Die Länge des Bibliotheksnamens |
LibraryFile |
Eingabe | Der Pfad (als Zeichenfolge) zur Bibliotheksdatei, die den binären Inhalt enthält, der durch CREATE EXTERNAL LIBRARY |
LibraryFileLength |
Eingabe | Die Länge der LibraryFile Zeichenfolge |
LibraryInstallDirectory |
Eingabe | Das Stammverzeichnis zum Installieren der Bibliothek |
LibraryInstallDirectoryLength |
Eingabe | Die Länge der LibraryInstallDirectory Zeichenfolge |
LibraryError |
Output | Ein optionaler Ausgabeparameter. Wenn während der Installation der Bibliothek ein Fehler auftritt, verweist sie auf eine Zeichenfolge, LibraryError die den Fehler beschreibt. |
LibraryErrorLength |
Output | Die Länge der LibraryError Zeichenfolge |
UninstallExternalLibrary
Dieser Wert deinstalliert eine Bibliothek. Die Funktion ist optional und erfordert keine Implementierung. Die Standardimplementierung besteht darin, die von der Standardimplementierung InstallExternalLibrarydurchgeführte Arbeit rückgängig zu machen. Die Standardimplementierung löscht den Inhalt der LibraryName Datei unter LibraryInstallDirectory.
Syntax
SQLRETURN UninstallExternalLibrary(
SQLGUID SetupSessionId,
SQLCHAR *LibraryName,
SQLINTEGER LibraryNameLength,
SQLCHAR *LibraryInstallDirectory,
SQLINTEGER LibraryInstallDirectoryLength,
SQLCHAR **LibraryError,
SQLINTEGER *LibraryErrorLength
);
Argumente
| Argument | Eingabe/Ausgabe | Beschreibung |
|---|---|---|
SetupSessionId |
Eingabe | GUID, die diese Skriptsitzung eindeutig identifiziert |
LibraryName |
Eingabe | Der Bibliotheksname |
LibraryNameLength |
Eingabe | Die Länge des Bibliotheksnamens |
LibraryFile |
Eingabe | Der Pfad (als Zeichenfolge) zur Bibliotheksdatei, die den binären Inhalt enthält, der durch CREATE EXTERNAL LIBRARY |
LibraryFileLength |
Eingabe | Die Länge der LibraryFile Zeichenfolge |
LibraryInstallDirectory |
Eingabe | Das Stammverzeichnis zum Installieren der Bibliothek |
LibraryInstallDirectoryLength |
Eingabe | Die Länge der LibraryInstallDirectory Zeichenfolge |
LibraryError |
Output | Die Bibliotheksfehlerzeichenfolge |
LibraryErrorLength |
Output | Die Länge der LibraryError Zeichenfolge |