Megosztás a következőn keresztül:


Azure Data Studio bővíthetőségi API-k

Fontos

Az Azure Data Studio 2026. február 28-án. Javasoljuk, hogy használja Visual Studio Code. A Visual Studio Code-ra történő migrálásról további információkat találhat Mi történik az Azure Data Studióval?

Az Azure Data Studio olyan API-t biztosít, amellyel a bővítmények az Azure Data Studio más részeivel, például az Object Explorerrel is kommunikálhatnak. Ezek az API-k a src/sql/azdata.d.ts fájlból érhetők el, és az alábbiakban ismertetjük őket.

Kapcsolatkezelés

azdata.connection

Legfelső szintű függvények a kapcsolatkezeléshez

  • getCurrentConnection(): Thenable<azdata.connection.Connection> Lekéri az aktuális kapcsolatot az aktív szerkesztő vagy az Objektumkezelő kiválasztása alapján.

  • getActiveConnections(): Thenable<azdata.connection.Connection[]> Lekéri az összes aktív felhasználói kapcsolat listáját. Üres listát ad vissza, ha nincsenek ilyen kapcsolatok.

  • getCredentials(connectionId: string): Thenable<{ [name: string]: string }> Lekéri a kapcsolathoz társított hitelesítő adatokat tartalmazó szótárat. Ezek egyébként egy data.connection.Connection objektum beállítási szótárának részeként lesznek visszaadva, de eltávolítva az adott objektumból.

Kapcsolat

  • options: { [name: string]: string } A kapcsolati beállítások szótára
  • providerName: string A kapcsolatszolgáltató neve (például "MSSQL")
  • connectionId: string A kapcsolat egyedi azonosítója

Példakód

> let connection = azdata.connection.getCurrentConnection();
connection: {
    providerName: 'MSSQL',
    connectionId: 'd97bb63a-466e-4ef0-ab6f-00cd44721dcc',
    options: {
        server: 'mairvine-sql-server',
        user: 'sa',
        authenticationType: 'sqlLogin',
        ...
 },
    ...
}
> let credentials = azdata.connection.getCredentials(connection.connectionId);
credentials: {
    password: 'abc123'
}

Object Explorer

azdata.objectexplorer

Legfelső szintű függvények az Object Explorerhez

  • getNode(connectionId: string, nodePath?: string): Thenable<azdata.objectexplorer.ObjectExplorerNode> Szerezze be a megadott kapcsolatnak és elérési útnak megfelelő Object Explorer-csomópontot. Ha nincs megadva elérési út, akkor az adott kapcsolat legfelső szintű csomópontja lesz visszaadva. Ha nincs csomópont a megadott útvonalon, akkor undefinedad vissza. Megjegyzés: Az nodePath objektumot az SQL Tools Service háttérrendszere hozza létre, és nehéz kézzel létrehozni. A jövőbeli API-fejlesztések lehetővé teszik a csomópontok lekérését a csomóponthoz megadott metaadatok, például a név, a típus és a séma alapján.

  • getActiveConnectionNodes(): Thenable<azdata.objectexplorer.ObjectExplorerNode> Szerezze be az összes aktív Object Explorer kapcsolatcsomópontot.

  • findNodes(connectionId: string, type: string, schema: string, name: string, database: string, parentObjectNames: string[]): Thenable<azdata.objectexplorer.ObjectExplorerNode[]> Keresse meg az összes Objektumkezelő-csomópontot, amely megfelel a megadott metaadatoknak. A schema, databaseés parentObjectNames argumentumokat undefined-ként kell megadni, ha nem alkalmazhatók. parentObjectNames a nem adatbázis-szülőobjektumok listája az Object Explorer legmagasabbtól a legalacsonyabb szintjéig, amelyek alatt a kívánt objektum található. Ha például a "schema1.table1" táblához tartozó "oszlop1" oszlopot és az "adatbázis1" adatbázist keresi kapcsolatazonosítóval connectionId, hívja meg a hívást findNodes(connectionId, 'Column', undefined, 'column1', 'database1', ['schema1.table1']). Tekintse meg az Azure Data Studio által alapértelmezés szerint az API-híváshoz támogatott típusok listáját is.

ObjectExplorerNode

  • connectionId: string Annak a kapcsolatnak az azonosítója, amely alatt a csomópont található

  • nodePath: string A csomópont elérési útja a függvény hívásához getNode használt módon.

  • nodeType: string A csomópont típusát képviselő sztring

  • nodeSubType: string A csomópont altípusát képviselő sztring

  • nodeStatus: string A csomópont állapotát jelző sztring

  • label: string A csomópont címkéje az Object Explorerben megjelenő módon

  • isLeaf: boolean Az, hogy a csomópont levélcsomópont-e, és ezért nincs-e gyermeke

  • metadata: azdata.ObjectMetadata A csomópont által képviselt objektumot leíró metaadatok

  • errorMessage: string Üzenet jelenik meg, ha a csomópont hibaállapotban van

  • isExpanded(): Thenable<boolean> Azt jelzi, hogy a csomópont jelenleg ki van-e bontva az Object Explorerben

  • setExpandedState(expandedState: vscode.TreeItemCollapsibleState): Thenable<void> Adja meg, hogy a csomópont kibontva vagy összecsukva van-e. A csomópont nem változik, ha az állapot Nincs értékre van állítva.

  • setSelected(selected: boolean, clearOtherSelections?: boolean): Thenable<void> Adja meg, hogy a csomópont ki van-e jelölve. Ha clearOtherSelections igaz, törölje a többi kijelölést az új kijelöléskor. Ha hamis, hagyja meg a meglévő kijelöléseket. clearOtherSelections alapértelmezés szerint igaz, ha selected igaz, és hamis, ha selected hamis.

  • getChildren(): Thenable<azdata.objectexplorer.ObjectExplorerNode[]> A csomópont összes gyermekcsomópontja lekérése. Üres listát ad vissza, ha nincsenek gyermekek.

  • getParent(): Thenable<azdata.objectexplorer.ObjectExplorerNode> Kérje le a csomópont szülőcsomópontját. Nem definiált értéket ("undefined") ad vissza, ha nincs szülő.

Példakód

private async interactWithOENode(selectedNode: azdata.objectexplorer.ObjectExplorerNode): Promise<void> {
    let choices = ['Expand', 'Collapse', 'Select', 'Select (multi)', 'Deselect', 'Deselect (multi)'];
    if (selectedNode.isLeaf) {
 choices[0] += ' (is leaf)';
 choices[1] += ' (is leaf)';
 } else {
        let expanded = await selectedNode.isExpanded();
        if (expanded) {
 choices[0] += ' (is expanded)';
 } else {
 choices[1] += ' (is collapsed)';
 }
 }
    let parent = await selectedNode.getParent();
    if (parent) {
 choices.push('Get Parent');
 }
    let children = await selectedNode.getChildren();
 children.forEach(child => choices.push(child.label));
    let choice = await vscode.window.showQuickPick(choices);
 let nextNode: azdata.objectexplorer.ObjectExplorerNode = undefined;
    if (choice === choices[0]) {
 selectedNode.setExpandedState(vscode.TreeItemCollapsibleState.Expanded);
 } else if (choice === choices[1]) {
 selectedNode.setExpandedState(vscode.TreeItemCollapsibleState.Collapsed);
 } else if (choice === choices[2]) {
 selectedNode.setSelected(true);
 } else if (choice === choices[3]) {
 selectedNode.setSelected(true, false);
 } else if (choice === choices[4]) {
 selectedNode.setSelected(false);
 } else if (choice === choices[5]) {
 selectedNode.setSelected(false, true);
 } else if (choice === 'Get Parent') {
 nextNode = parent;
 } else {
        let childNode = children.find(child => child.label === choice);
 nextNode = childNode;
 }
    if (nextNode) {
        let updatedNode = await azdata.objectexplorer.getNode(nextNode.connectionId, nextNode.nodePath);
        this.interactWithOENode(updatedNode);
 }
}

vscode.commands.registerCommand('mssql.objectexplorer.interact', () => {
 azdata.objectexplorer.getActiveConnectionNodes().then(activeConnections => {
 vscode.window.showQuickPick(activeConnections.map(connection => connection.label + ' ' + connection.connectionId)).then(selection => {
            let selectedNode = activeConnections.find(connection => connection.label + ' ' + connection.connectionId === selection);
            this.interactWithOENode(selectedNode);
 });
 });
});

Javasolt API-k

Olyan javasolt API-kat adtunk hozzá, amelyek lehetővé teszik, hogy a bővítmények többek között párbeszédpaneleken, varázslókban és dokumentumfüleken jelenítsen meg egyéni felhasználói felületet. További dokumentációkért tekintse meg a javasolt API-típusok fájlját, de vegye figyelembe, hogy ezek az API-k bármikor változhatnak. Ezen API-k némelyikének használatára példákat a "alszolgáltatások" mintakiterjesztésbentalál.