diff --git a/packages/datalib/src/GridDisplay.ts b/packages/datalib/src/GridDisplay.ts
index d6eb21e46..07fc7f435 100644
--- a/packages/datalib/src/GridDisplay.ts
+++ b/packages/datalib/src/GridDisplay.ts
@@ -710,6 +710,13 @@ export abstract class GridDisplay {
// return sql;
}
+ getPageQueryText(offset: number, count: number) {
+ const select = this.getPageQuery(offset, count);
+ const sql = treeToSql(this.driver, select, dumpSqlSelect);
+ return sql;
+ }
+
+
getExportQuery(postprocessSelect = null) {
const select = this.createSelect({ isExport: true });
if (!select) return null;
diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte
index a44bd39e9..e7429136c 100644
--- a/packages/web/src/datagrid/DataGridCore.svelte
+++ b/packages/web/src/datagrid/DataGridCore.svelte
@@ -462,6 +462,7 @@
export let tabControlHiddenTab = false;
export let onCustomGridRefresh = null;
export let onOpenQuery = null;
+ export let onOpenQueryOnError = null;
export let jslid;
// export let generalAllowSave = false;
export let hideGridLeftColumn = false;
@@ -1838,8 +1839,8 @@
display.clearFilters()} />
display.resetConfig()} />
- {#if onOpenQuery}
-
+ {#if onOpenQueryOnError ?? onOpenQuery}
+
{/if}
{:else if isDynamicStructure && isLoadedAll && grider?.rowCount == 0}
diff --git a/packages/web/src/datagrid/SqlDataGridCore.svelte b/packages/web/src/datagrid/SqlDataGridCore.svelte
index 471240974..caa6ec989 100644
--- a/packages/web/src/datagrid/SqlDataGridCore.svelte
+++ b/packages/web/src/datagrid/SqlDataGridCore.svelte
@@ -82,6 +82,7 @@
import LoadingDataGridCore from './LoadingDataGridCore.svelte';
import hasPermission from '../utility/hasPermission';
import { openImportExportTab } from '../utility/importExportTools';
+ import { getIntSettingsValue } from '../settings/settingsTools';
export let conid;
export let display;
@@ -147,7 +148,7 @@
// showModal(ImportExportModal, { initialValues });
}
- export function openQuery() {
+ export function openQuery(sql?) {
openNewTab(
{
title: 'Query #',
@@ -162,11 +163,15 @@
},
},
{
- editor: display.getExportQuery(),
+ editor: sql ?? display.getExportQuery(),
}
);
}
+ function openQueryOnError() {
+ openQuery(display.getPageQueryText(0, getIntSettingsValue('dataGrid.pageSize', 100, 5, 1000)));
+ }
+
export function openActiveChart() {
openNewTab(
{
@@ -241,4 +246,5 @@
{grider}
{display}
onOpenQuery={openQuery}
+ onOpenQueryOnError={openQueryOnError}
/>