feat: stored procedures and funciton parameters support for mssql

This commit is contained in:
Nybkox
2024-11-26 17:05:12 +01:00
parent 35e9ff607d
commit 2b2ecac3ab
11 changed files with 162 additions and 14 deletions

View File

@@ -62,7 +62,7 @@
{#if (isExpanded || isExpandedBySearch) && subItemsComponent}
<div class="subitems">
<svelte:component
this={subItemsComponent}
this={subItemsComponent(data)}
{data}
{filter}
{passProps}

View File

@@ -0,0 +1,18 @@
<script lang="ts" context="module">
export const extractKey = ({ columnName }) => columnName;
</script>
<script lang="ts">
import AppObjectCore from './AppObjectCore.svelte';
export let data;
</script>
<AppObjectCore
{...$$restProps}
{data}
title={data.pureName}
extInfo={data.isOutputParameter ? `data.fullDataType OUT` : data.fullDataType}
icon={'icon parameter'}
disableHover
/>

View File

@@ -0,0 +1,15 @@
<script lang="ts">
import AppObjectList from './AppObjectList.svelte';
import * as parameterAppObject from './ParameterAppObject.svelte';
export let data;
</script>
<AppObjectList
list={data.parameters ||
[].map(parameter => ({
...data,
...parameter,
}))}
module={parameterAppObject}
/>

View File

@@ -63,6 +63,7 @@
'icon open-in-new': 'mdi mdi-open-in-new',
'icon add-folder': 'mdi mdi-folder-plus-outline',
'icon add-column': 'mdi mdi-table-column-plus-after',
'icon parameter': 'mdi mdi-at',
'icon window-restore': 'mdi mdi-window-restore',
'icon window-maximize': 'mdi mdi-window-maximize',

View File

@@ -251,7 +251,7 @@
<AppObjectList
list={connectionsWithParent}
module={connectionAppObject}
subItemsComponent={SubDatabaseList}
subItemsComponent={() => SubDatabaseList}
expandOnClick
isExpandable={data => $openedConnections.includes(data._id) && !data.singleDatabase}
{filter}
@@ -275,7 +275,7 @@
<AppObjectList
list={connectionsWithoutParent}
module={connectionAppObject}
subItemsComponent={SubDatabaseList}
subItemsComponent={() => SubDatabaseList}
expandOnClick
isExpandable={data => $openedConnections.includes(data._id) && !data.singleDatabase}
{filter}

View File

@@ -52,6 +52,7 @@
import AppObjectListHandler from './AppObjectListHandler.svelte';
import { matchDatabaseObjectAppObject } from '../appobj/appObjectTools';
import FocusedConnectionInfoWidget from './FocusedConnectionInfoWidget.svelte';
import SubProcedureParamList from '../appobj/SubProcedureParamList.svelte';
export let conid;
export let database;
@@ -232,9 +233,16 @@
.map(x => ({ ...x, conid, database }))}
module={databaseObjectAppObject}
groupFunc={data => getObjectTypeFieldLabel(data.objectTypeField, driver)}
subItemsComponent={SubColumnParamList}
subItemsComponent={data =>
data.objectTypeField == 'procedures' || data.objectTypeField == 'functions'
? SubProcedureParamList
: SubColumnParamList}
isExpandable={data =>
data.objectTypeField == 'tables' || data.objectTypeField == 'views' || data.objectTypeField == 'matviews'}
data.objectTypeField == 'tables' ||
data.objectTypeField == 'views' ||
data.objectTypeField == 'matviews' ||
((data.objectTypeField == 'procedures' || data.objectTypeField == 'functions') &&
!!data.parameters?.length)}
expandIconFunc={chevronExpandIcon}
{filter}
passProps={{