mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-02 06:43:59 +00:00
execute procedure tab
This commit is contained in:
@@ -44,6 +44,10 @@ const menus = {
|
|||||||
label: 'Show CREATE PROCEDURE script',
|
label: 'Show CREATE PROCEDURE script',
|
||||||
tab: 'SqlObjectCreateScriptTab',
|
tab: 'SqlObjectCreateScriptTab',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'Show EXECUTE script',
|
||||||
|
tab: 'ExecuteProcedureTab',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
functions: [
|
functions: [
|
||||||
{
|
{
|
||||||
|
|||||||
16
packages/web/src/tabs/ExecuteProcedureTab.js
Normal file
16
packages/web/src/tabs/ExecuteProcedureTab.js
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import engines from '@dbgate/engines';
|
||||||
|
import { useConnectionInfo, useSqlObjectInfo } from '../utility/metadataLoaders';
|
||||||
|
import QueryTab from './QueryTab';
|
||||||
|
|
||||||
|
export default function ExecuteProcedureTab(props) {
|
||||||
|
const procedureInfo = useSqlObjectInfo(props);
|
||||||
|
const connnection = useConnectionInfo(props);
|
||||||
|
if (!connnection || !procedureInfo) return null;
|
||||||
|
|
||||||
|
const driver = engines(connnection.engine);
|
||||||
|
const dmp = driver.createDumper();
|
||||||
|
if (procedureInfo) dmp.put('^execute %f', procedureInfo);
|
||||||
|
|
||||||
|
return <QueryTab {...props} initialScript={dmp.s} />;
|
||||||
|
}
|
||||||
@@ -23,9 +23,9 @@ import keycodes from '../utility/keycodes';
|
|||||||
// height: 200px;
|
// height: 200px;
|
||||||
// `;
|
// `;
|
||||||
|
|
||||||
export default function QueryTab({ tabid, conid, database, tabVisible, toolbarPortalRef }) {
|
export default function QueryTab({ tabid, conid, database, tabVisible, toolbarPortalRef, initialScript }) {
|
||||||
const localStorageKey = `sql_${tabid}`;
|
const localStorageKey = `sql_${tabid}`;
|
||||||
const [queryText, setQueryText] = React.useState(() => localStorage.getItem(localStorageKey) || '');
|
const [queryText, setQueryText] = React.useState(() => localStorage.getItem(localStorageKey) || initialScript || '');
|
||||||
const queryTextRef = React.useRef(queryText);
|
const queryTextRef = React.useRef(queryText);
|
||||||
const [sessionId, setSessionId] = React.useState(null);
|
const [sessionId, setSessionId] = React.useState(null);
|
||||||
const [executeNumber, setExecuteNumber] = React.useState(0);
|
const [executeNumber, setExecuteNumber] = React.useState(0);
|
||||||
|
|||||||
@@ -1,10 +1,20 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useConnectionInfo, useSqlObjectInfo } from '../utility/metadataLoaders';
|
import { useConnectionInfo, useSqlObjectInfo } from '../utility/metadataLoaders';
|
||||||
import SqlEditor from '../sqleditor/SqlEditor';
|
import SqlEditor from '../sqleditor/SqlEditor';
|
||||||
|
import { useUpdateDatabaseForTab } from '../utility/globalState';
|
||||||
|
|
||||||
export default function SqlObjectCreateScriptTab({ objectTypeField, conid, database, schemaName, pureName }) {
|
export default function SqlObjectCreateScriptTab({
|
||||||
|
objectTypeField,
|
||||||
|
conid,
|
||||||
|
database,
|
||||||
|
schemaName,
|
||||||
|
pureName,
|
||||||
|
tabVisible,
|
||||||
|
}) {
|
||||||
const sqlObjectInfo = useSqlObjectInfo({ conid, database, schemaName, pureName, objectTypeField });
|
const sqlObjectInfo = useSqlObjectInfo({ conid, database, schemaName, pureName, objectTypeField });
|
||||||
const connnection = useConnectionInfo({ conid });
|
const connnection = useConnectionInfo({ conid });
|
||||||
|
useUpdateDatabaseForTab(tabVisible, conid, database);
|
||||||
|
|
||||||
if (!connnection || !sqlObjectInfo) return null;
|
if (!connnection || !sqlObjectInfo) return null;
|
||||||
|
|
||||||
return <SqlEditor engine={connnection && connnection.engine} value={sqlObjectInfo.createSql} readOnly />;
|
return <SqlEditor engine={connnection && connnection.engine} value={sqlObjectInfo.createSql} readOnly />;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import TableStructureTab from './TableStructureTab';
|
|||||||
import TableCreateScriptTab from './TableCreateScriptTab';
|
import TableCreateScriptTab from './TableCreateScriptTab';
|
||||||
import SqlObjectCreateScriptTab from './SqlObjectCreateScriptTab';
|
import SqlObjectCreateScriptTab from './SqlObjectCreateScriptTab';
|
||||||
import QueryTab from './QueryTab';
|
import QueryTab from './QueryTab';
|
||||||
|
import ExecuteProcedureTab from './ExecuteProcedureTab';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
TableDataTab,
|
TableDataTab,
|
||||||
@@ -12,4 +13,5 @@ export default {
|
|||||||
TableCreateScriptTab,
|
TableCreateScriptTab,
|
||||||
QueryTab,
|
QueryTab,
|
||||||
SqlObjectCreateScriptTab,
|
SqlObjectCreateScriptTab,
|
||||||
|
ExecuteProcedureTab,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user