diff --git a/package.json b/package.json index 8182cc7..ce940f9 100644 --- a/package.json +++ b/package.json @@ -85,6 +85,11 @@ "title": "Query", "category": "SQL" }, + { + "command": "extension.querySQLToCSV", + "title": "Query with CSV result", + "category": "SQL" + }, { "command": "extension.queryFileSQL", "title": "Run file as query", diff --git a/src/extension.ts b/src/extension.ts index 8ad52f4..d015649 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -36,6 +36,8 @@ export function activate(context: vscode.ExtensionContext) { addCommand(context, 'extension.connectToSQLServer'); addCommand(context, 'extension.querySQL'); + + addCommand(context, 'extension.querySQLToCSV'); addCommand(context, 'extension.queryFileSQL'); diff --git a/src/extension/action/extension.querySQLToCSV.ts b/src/extension/action/extension.querySQLToCSV.ts new file mode 100644 index 0000000..c69b376 --- /dev/null +++ b/src/extension/action/extension.querySQLToCSV.ts @@ -0,0 +1,29 @@ +import * as vscode from 'vscode'; +import { AbstractAction } from './AbstractAction'; + +export class QuerySQLToCSV extends AbstractAction +{ + + execution(textEditor: vscode.TextEditor, edit: vscode.TextEditorEdit, query?: string) { + + if(typeof query === 'string'){ + this.runQuery(query); + return; + } + + vscode.window.showInputBox({ + value:'', + prompt: 'e.g SELECT * FROM table', + placeHolder: 'Query', + password: false + }).then((qry)=>this.runQuery(qry)); + } + + runQuery(query?: string) { + if(typeof query === 'undefined'){ + return; + } + this.sqlMenager.runAsQueryToCSV(query); + } + +} diff --git a/src/extension/action/index.ts b/src/extension/action/index.ts index 34e8a29..4bd38e0 100644 --- a/src/extension/action/index.ts +++ b/src/extension/action/index.ts @@ -11,6 +11,7 @@ import { QueryFileSQL } from './extension.queryFileSQL'; import { QueryBuild } from './extension.queryBuild'; import { ConnectToSQLServer } from './extension.connectToSQLServer'; import { QuerySQL } from './extension.querySQL'; +import { QuerySQLToCSV } from './extension.querySQLToCSV'; export interface ActionsList { [K: string]: typeof AbstractAction; @@ -26,6 +27,7 @@ export const actionsList: ActionsList = { 'extension.querySelectedSQL': QuerySelectedSQL, 'extension.querySelectedSQLToCSV': QuerySelectedSQLToCSV, 'extension.querySQL': QuerySQL, + 'extension.querySQLToCSV': QuerySQLToCSV, 'extension.runQueryBuild': RunQueryBuild, 'extension.saveConfig': SaveConfig, };