EDMIService: Add dataview to create indexes on cached tables

This commit is contained in:
Jonathan Jenne 2021-09-13 15:42:04 +02:00
parent 9fc5092fc7
commit 6c2bf88cfc
2 changed files with 14 additions and 0 deletions

View File

@ -36,6 +36,7 @@ Public Class DatatableJob
Dim oConnectionId As Integer = NotNull(oRow.Item("CON_ID"), String.Empty)
Dim oTitle As String = NotNull(oRow.Item("TITLE"), String.Empty)
Dim oSQL As String = NotNull(oRow.Item("COMMAND"), String.Empty)
Dim oIndexColumns As String = NotNull(oRow.Item("INDEX_COLUMNS"), String.Empty)
Try
oLogger.Debug("Running Command-Job [{0}]", oTitle)
@ -46,10 +47,22 @@ Public Class DatatableJob
Dim oTable = oMSSQL.GetDatatableWithConnection(oSQL, oConnectionString, COMMAND_SQL_TIMEOUT)
oTable.TableName = oDatatableName
Dim oView As DataView = Nothing
' This creates an Index for the columns specified in INDEX_COLUMNS to speed up calls to 'Table.Select'!
If oIndexColumns <> String.Empty Then
oLogger.Debug("Adding indexes for Table: [{0}]", oIndexColumns)
oView = New DataView(oTable) With {
.Sort = oIndexColumns
}
End If
oLogger.Debug("Result Datatable [{0}] contains [{1}] rows", oTable.TableName, oTable.Rows.Count)
Dim oResultTable = New JobResult.ResultTable() With {
.Table = oTable,
.View = oView,
.DetailRow = oRow
}

View File

@ -3,6 +3,7 @@
Public Class ResultTable
Public Table As DataTable
Public View As DataView
Public ChildTable As DataTable
Public TableRelationColumn As String
Public ChildRelationColumn As String