Skip to content

Commit 5ca79b0

Browse files
committed
Check that correct amount were passed
Signed-off-by: worksofliam <mrliamallan@live.co.uk>
1 parent 1a21de2 commit 5ca79b0

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/views/results/binding.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { StatementGroup } from "../../language/sql/types";
44
import { SqlParameter } from "./resultSetPanelProvider";
55
import { tokenIs } from "../../language/sql/statement";
66

7-
export function getPriorBindableStatement(editor: TextEditor, offset: number): string|undefined {
7+
export function getPriorBindableStatement(editor: TextEditor, offset: number): {statement: string, parameters: number}|undefined {
88
const sqlDocument = getSqlDocument(editor.document);
99

1010
const groups = sqlDocument.getStatementGroups();
@@ -18,7 +18,11 @@ export function getPriorBindableStatement(editor: TextEditor, offset: number): s
1818
if (group.statements.length === 1) {
1919
const statement = group.statements[0];
2020
if (!statement.getLabel()) {
21-
return sqlDocument.content.substring(group.range.start, group.range.end);
21+
const markers = statement.getEmbeddedStatementAreas().filter(a => a.type === `marker`);
22+
return {
23+
statement: sqlDocument.content.substring(group.range.start, group.range.end),
24+
parameters: markers.length
25+
};
2226
}
2327
}
2428
}

src/views/results/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,13 @@ async function runHandler(options?: StatementInfo) {
348348

349349
if (runStatement) {
350350
parameters = getLiteralsFromStatement(statementDetail.group);
351-
statementDetail.content = runStatement;
351+
352+
if (runStatement.parameters !== parameters.length) {
353+
vscode.window.showErrorMessage(`Incorrect number of parameters for statement. Expected ${runStatement.parameters}, got ${parameters.length}.`);
354+
return;
355+
}
356+
357+
statementDetail.content = runStatement.statement;
352358
}
353359
}
354360

0 commit comments

Comments
 (0)