Marco
10 months agoContributor II
How can I modify the LoadCustomTableUsingExcel function to prevent it from adding duplicates?
Hi Everyone.
Is there a way to prevent the insertion of duplicate information using that function?
Dim selectionChangedTaskResult As New XFSelectionChangedTaskResult()
selectionChangedTaskResult.ShowMessageBox = True
Try
Dim loadResults As New List(Of TableRangeContent)
Dim fileInfo As XFFileEx = BRApi.FileSystem.GetFile(si, FileSystemLocation.ApplicationDatabase, strFilePath, True, False, False, SharedConstants.Unknown, Nothing, True)
If strFilePath.XFContainsIgnoreCase("xlsx") Then
loadResults = BRApi.Utilities.LoadCustomTableUsingExcel(si, SourceDataOriginTypes.FromFileUpload, "Temp.xlsx", fileInfo.XFFile.ContentFileBytes)
selectionChangedTaskResult.Message = "File [" & strFilePath & "] Loaded"
selectionChangedTaskResult.IsOK = True
Else
selectionChangedTaskResult.Message = "File [" & strFilePath & "] NOT Loaded"
selectionChangedTaskResult.IsOK = False
End If
'Delete the temp file
If boolDeleteTempFile Then BRApi.FileSystem.DeleteFile(si, FileSystemLocation.ApplicationDatabase, strFilePath)
Return selectionChangedTaskResult
Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
End Try
You will have to manage the detection of and how to deal with duplicates. If managing it in the Excel file doesn't work, because you're also dealing with the possibility that even though its not a dupe in the excel file, the data may already be in your sql table from some other excel file or process.
If that's the case, and your very limited amount information keeps us guessing, then deal with it in your code using SQL commands. e.g.
INSERT INTO YourTable (Column1, Column2) SELECT 'Value1', 'Value2' WHERE NOT EXISTS ( SELECT 1 FROM YourTable WHERE Column1 = 'Value1' AND Column2 = 'Value2' );