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 egydata.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, akkorundefined
ad vissza. Megjegyzés: AznodePath
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. Aschema
,database
ésparentObjectNames
argumentumokatundefined
-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óvalconnectionId
, hívja meg a hívástfindNodes(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áhozgetNode
használt módon.nodeType: string
A csomópont típusát képviselő sztringnodeSubType: string
A csomópont altípusát képviselő sztringnodeStatus: string
A csomópont állapotát jelző sztringlabel: string
A csomópont címkéje az Object Explorerben megjelenő módonisLeaf: boolean
Az, hogy a csomópont levélcsomópont-e, és ezért nincs-e gyermekemetadata: azdata.ObjectMetadata
A csomópont által képviselt objektumot leíró metaadatokerrorMessage: string
Üzenet jelenik meg, ha a csomópont hibaállapotban vanisExpanded(): Thenable<boolean>
Azt jelzi, hogy a csomópont jelenleg ki van-e bontva az Object ExplorerbensetExpandedState(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. HaclearOtherSelections
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, haselected
igaz, és hamis, haselected
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.
Kapcsolódó tartalom
- Azure Data Studio letöltése