diff --git a/src/sql/workbench/contrib/query/browser/gridPanel.ts b/src/sql/workbench/contrib/query/browser/gridPanel.ts index 45d5fa68be..a1c4c3c6da 100644 --- a/src/sql/workbench/contrib/query/browser/gridPanel.ts +++ b/src/sql/workbench/contrib/query/browser/gridPanel.ts @@ -51,6 +51,7 @@ import { IQueryModelService } from 'sql/workbench/services/query/common/queryMod import { FilterButtonWidth, HeaderFilter } from 'sql/base/browser/ui/table/plugins/headerFilter.plugin'; import { HybridDataProvider } from 'sql/base/browser/ui/table/hybridDataProvider'; import { INotificationService } from 'vs/platform/notification/common/notification'; +import { alert, status } from 'vs/base/browser/ui/aria/aria'; const ROW_HEIGHT = 29; const HEADER_HEIGHT = 26; @@ -122,11 +123,20 @@ export class GridPanel extends Disposable { this.queryRunnerDisposables.add(this.runner.onResultSet(this.onResultSet, this)); this.queryRunnerDisposables.add(this.runner.onResultSetUpdate(this.updateResultSet, this)); this.queryRunnerDisposables.add(this.runner.onQueryStart(() => { + status(localize('query.QueryExecutionStarted', "Query execution started.")); if (this.state) { this.state.tableStates = []; } this.reset(); })); + this.queryRunnerDisposables.add(this.runner.onQueryEnd(() => { + status(localize('query.QueryExecutionEnded', "Query execution completed.")); + })); + this.queryRunnerDisposables.add(this.runner.onMessage((messages) => { + if (messages?.find(m => m.isError)) { + alert(localize('query.QueryErrorOccured', "Error occured while executing the query.")); + } + })); this.addResultSet(this.runner.batchSets.reduce((p, e) => { if (this.configurationService.getValue('queryEditor').results.streaming) { p = p.concat(e.resultSetSummaries ?? []);