diff --git a/apps/desktop/src/components/editor/SqlParameterDialog.vue b/apps/desktop/src/components/editor/SqlParameterDialog.vue index faf4cf6343..f1da7b13a9 100644 --- a/apps/desktop/src/components/editor/SqlParameterDialog.vue +++ b/apps/desktop/src/components/editor/SqlParameterDialog.vue @@ -9,7 +9,7 @@ import { Popover, PopoverAnchor, PopoverContent } from "@/components/ui/popover" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import TruncatedTextTooltip from "@/components/ui/TruncatedTextTooltip.vue"; import { loadSqlParameterHistory, rememberSqlParameterValues } from "@/lib/sql/sqlParameterHistory"; -import { substituteSqlParameters, type SqlParameterInput, type SqlParameterValueKind } from "@/lib/sql/sqlParameters"; +import { substituteSqlParameters, type SqlParameterDescriptor, type SqlParameterInput, type SqlParameterSyntax, type SqlParameterValueKind } from "@/lib/sql/sqlParameters"; import { useSqlHighlighter } from "@/composables/useSqlHighlighter"; const { t } = useI18n(); @@ -19,7 +19,7 @@ const open = defineModel("open", { default: false }); const props = defineProps<{ sql: string; - parameters: string[]; + parameters: SqlParameterDescriptor[]; }>(); const emit = defineEmits<{ @@ -33,6 +33,14 @@ let closeHistoryTimer: ReturnType | undefined; const parameterKinds: SqlParameterValueKind[] = ["string", "number", "boolean", "null", "raw"]; +const syntaxLabels: Record = { + positional: "?", + named: ":name", + shell: "${name}", + mybatis: "#{name}", + sqlserver: "@name", +}; + const resolvedSql = computed(() => substituteSqlParameters(props.sql, values.value)); const highlightedSql = computed(() => highlight(resolvedSql.value)); @@ -42,10 +50,10 @@ watch( if (!isOpen) return; const next: Record = {}; const nextHistories: Record = {}; - for (const name of props.parameters) { - const history = loadSqlParameterHistory(name); - nextHistories[name] = history; - next[name] = values.value[name] ?? history[0] ?? { kind: "string", value: "" }; + for (const parameter of props.parameters) { + const history = loadSqlParameterHistory(parameter.key); + nextHistories[parameter.key] = history; + next[parameter.key] = values.value[parameter.key] ?? history[0] ?? { kind: "string", value: "" }; } values.value = next; histories.value = nextHistories; @@ -111,15 +119,17 @@ function execute() {

{{ t("sqlParameters.description") }}

-
-
+
+
{{ t("sqlParameters.name") }}
+
{{ t("sqlParameters.syntax") }}
{{ t("sqlParameters.type") }}
{{ t("sqlParameters.value") }}
-
-
{{ name }}
- @@ -130,28 +140,28 @@ function execute() {
- +