execute procedure tab

This commit is contained in:
Jan Prochazka
2020-04-13 09:31:01 +02:00
parent f690c42153
commit 9c1f09259a
5 changed files with 35 additions and 3 deletions

View File

@@ -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: [
{ {

View 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} />;
}

View File

@@ -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);

View File

@@ -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 />;

View File

@@ -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,
}; };