diff --git a/packages/web/src/modals/QueryParametersModal.svelte b/packages/web/src/modals/QueryParametersModal.svelte
index 56a6610d3..ca28c090a 100644
--- a/packages/web/src/modals/QueryParametersModal.svelte
+++ b/packages/web/src/modals/QueryParametersModal.svelte
@@ -31,6 +31,11 @@
{#each parameterNames as parameterName, index}
{/each}
+
+
+ String values must be 'quoted'. You can use valid SQL expressions.
+
+
diff --git a/packages/web/src/tabs/QueryTab.svelte b/packages/web/src/tabs/QueryTab.svelte
index 45956a0ef..adc8c0db9 100644
--- a/packages/web/src/tabs/QueryTab.svelte
+++ b/packages/web/src/tabs/QueryTab.svelte
@@ -75,7 +75,7 @@
import InsertJoinModal from '../modals/InsertJoinModal.svelte';
import useTimerLabel from '../utility/useTimerLabel';
import createActivator, { getActiveComponent } from '../utility/createActivator';
- import { findEngineDriver } from 'dbgate-tools';
+ import { findEngineDriver, safeJsonParse } from 'dbgate-tools';
import AceEditor from '../query/AceEditor.svelte';
import StatusBarTabItem from '../widgets/StatusBarTabItem.svelte';
import { showSnackbarError } from '../utility/snackbar';
@@ -227,10 +227,16 @@
const parameters = extractQueryParameters(sql, getParameterSplitterOptions());
if (parameters.length > 0) {
+ const defaultValues = {
+ ...parameters.reduce((acc, x) => ({ ...acc, [x]: '' }), {}),
+ ...safeJsonParse(localStorage.getItem(`tabdata_queryParams_${tabid}`)),
+ };
+
showModal(QueryParametersModal, {
parameterNames: parameters,
- parameterValues: parameters.reduce((acc, x) => ({ ...acc, [x]: '' }), {}),
+ parameterValues: defaultValues,
onExecute: values => {
+ localStorage.setItem(`tabdata_queryParams_${tabid}`, JSON.stringify(values));
const newSql = replaceQueryParameters(sql, values, getParameterSplitterOptions());
executeCoreWithParams(newSql, startLine);
},
@@ -409,7 +415,7 @@
}
let isInitialized = false;
- let queryParameterStyle = ':';
+ let queryParameterStyle = localStorage.getItem(`tabdata_queryParamStyle_${tabid}`) ?? ':';
@@ -488,6 +494,7 @@
label: param.text,
onClick: () => {
queryParameterStyle = param.value;
+ localStorage.setItem(`tabdata_queryParamStyle_${tabid}`, queryParameterStyle);
},
}))}
label={QUERY_PARAMETER_STYLES.find(x => x.value == queryParameterStyle)?.text}