GUIs.Test: Rewrite graphql test tool, add BulkInsert form
This commit is contained in:
parent
e4ce86dd3c
commit
6573ab3e7c
2
GUIs.Test.GraphQLTest/frmMain.Designer.vb
generated
2
GUIs.Test.GraphQLTest/frmMain.Designer.vb
generated
@ -191,7 +191,7 @@ Partial Class frmMain
|
|||||||
'cmbQuery
|
'cmbQuery
|
||||||
'
|
'
|
||||||
Me.cmbQuery.FormattingEnabled = True
|
Me.cmbQuery.FormattingEnabled = True
|
||||||
Me.cmbQuery.Items.AddRange(New Object() {"SAPDaten", "Custom"})
|
Me.cmbQuery.Items.AddRange(New Object() {"SAPDaten", "SAPAufträge", "Custom"})
|
||||||
Me.cmbQuery.Location = New System.Drawing.Point(106, 352)
|
Me.cmbQuery.Location = New System.Drawing.Point(106, 352)
|
||||||
Me.cmbQuery.Name = "cmbQuery"
|
Me.cmbQuery.Name = "cmbQuery"
|
||||||
Me.cmbQuery.Size = New System.Drawing.Size(338, 21)
|
Me.cmbQuery.Size = New System.Drawing.Size(338, 21)
|
||||||
|
|||||||
@ -31,6 +31,18 @@ Public Class frmMain
|
|||||||
Public gueltig_bis As String
|
Public gueltig_bis As String
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
Public Class AuftragData
|
||||||
|
Public auftraege As List(Of AuftragDataItem)
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class AuftragDataItem
|
||||||
|
Public auftragsnr As String
|
||||||
|
Public kdnr As String
|
||||||
|
Public mdnr As String
|
||||||
|
Public name As String
|
||||||
|
Public objektnummer As String
|
||||||
|
End Class
|
||||||
|
|
||||||
Const GRAPHQL_QUERY_SAP_DATA = "
|
Const GRAPHQL_QUERY_SAP_DATA = "
|
||||||
query SAPDaten {
|
query SAPDaten {
|
||||||
sapdaten(datenpool: __DATA_POOL__) {
|
sapdaten(datenpool: __DATA_POOL__) {
|
||||||
@ -44,6 +56,21 @@ Public Class frmMain
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
|
|
||||||
|
Const GRAPHQL_QUERY_SAP_AUFTRAEGE = "
|
||||||
|
query Auftraege{
|
||||||
|
auftraege(offset: 0, limit: 0){
|
||||||
|
auftraege {
|
||||||
|
auftragsnr
|
||||||
|
kdnr
|
||||||
|
mdnr
|
||||||
|
name
|
||||||
|
kontaktName
|
||||||
|
kontaktMail
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"
|
||||||
|
|
||||||
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
Try
|
Try
|
||||||
Dim oStartupPath As String = AppDomain.CurrentDomain.BaseDirectory
|
Dim oStartupPath As String = AppDomain.CurrentDomain.BaseDirectory
|
||||||
@ -153,6 +180,62 @@ Public Class frmMain
|
|||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If cmbQuery.Text = "SAPAufträge" Then
|
||||||
|
_MSSQL.ExecuteNonQuery("DELETE FROM TBCUST_SYNC_API_AUFTRAEGE")
|
||||||
|
|
||||||
|
txtResult.Text = String.Empty
|
||||||
|
|
||||||
|
Dim oTotalTotal As Integer = 0
|
||||||
|
|
||||||
|
|
||||||
|
Dim oQuery As String = GRAPHQL_QUERY_SAP_AUFTRAEGE.Trim
|
||||||
|
Dim oDataResponse = _Interface.GetData(oQuery, "Auftraege")
|
||||||
|
Dim oResult As String
|
||||||
|
|
||||||
|
Using oStream = oDataResponse.GetResponseStream()
|
||||||
|
Using oReader As New StreamReader(oStream)
|
||||||
|
oResult = oReader.ReadToEnd()
|
||||||
|
End Using
|
||||||
|
End Using
|
||||||
|
|
||||||
|
'Dim oObj As JObject = JsonConvert.DeserializeObject(oResult)
|
||||||
|
Dim oObj As JObject = JObject.Parse(oResult)
|
||||||
|
|
||||||
|
Dim oData As AuftragData = ConvertAuftraegeResponse(oResult)
|
||||||
|
|
||||||
|
Dim oCounter As Integer = 0
|
||||||
|
Dim oTotal As Integer = oData.auftraege.Count
|
||||||
|
ProgressBar1.Maximum = oTotal
|
||||||
|
ProgressBar1.Value = oCounter
|
||||||
|
|
||||||
|
'For Each oItem As AuftragDataItem In oData.auftraege
|
||||||
|
' Dim oBeschreibung = Regex.Replace(oItem.name, "'", "''", RegexOptions.IgnoreCase)
|
||||||
|
|
||||||
|
' Dim oSQL = $"INSERT INTO TBCUST_SYNC_API_AUFTRAEGE (AUFTRAGSNR, KDNR, MDNR, NAME) VALUES ('{oItem.auftragsnr}', '{oItem.kdnr}', '{oItem.mdnr}', '{oItem.name}')"
|
||||||
|
' Dim oSuccess = _MSSQL.ExecuteNonQuery(oSQL)
|
||||||
|
|
||||||
|
' If oSuccess Then
|
||||||
|
' _Logger.Debug("Record [{0}] inserted!", oItem.name)
|
||||||
|
' End If
|
||||||
|
|
||||||
|
' oCounter += 1
|
||||||
|
' ProgressBar1.Value = oCounter
|
||||||
|
'Next
|
||||||
|
|
||||||
|
Dim oQueryResult = JsonConvert.SerializeObject(oObj, Formatting.None)
|
||||||
|
|
||||||
|
txtResult.Text &= "--------------------------------------------" & vbNewLine
|
||||||
|
txtResult.Text &= oQueryResult & vbNewLine
|
||||||
|
|
||||||
|
Application.DoEvents()
|
||||||
|
File.WriteAllText("E:\graphql.txt", oQueryResult)
|
||||||
|
|
||||||
|
oTotalTotal += oTotal
|
||||||
|
|
||||||
|
|
||||||
|
MsgBox($"Query finished! Lines inserted: [{oTotalTotal}]", MsgBoxStyle.Information, Text)
|
||||||
|
End If
|
||||||
|
|
||||||
If cmbQuery.Text = "SAPDaten" Then
|
If cmbQuery.Text = "SAPDaten" Then
|
||||||
_MSSQL.ExecuteNonQuery("DELETE FROM TBCUST_SYNC_API_SAPDATEN")
|
_MSSQL.ExecuteNonQuery("DELETE FROM TBCUST_SYNC_API_SAPDATEN")
|
||||||
|
|
||||||
@ -174,7 +257,7 @@ Public Class frmMain
|
|||||||
'Dim oObj As JObject = JsonConvert.DeserializeObject(oResult)
|
'Dim oObj As JObject = JsonConvert.DeserializeObject(oResult)
|
||||||
Dim oObj As JObject = JObject.Parse(oResult)
|
Dim oObj As JObject = JObject.Parse(oResult)
|
||||||
|
|
||||||
Dim oData As SAPData = ConvertResponse(oResult)
|
Dim oData As SAPData = ConvertSAPDatenResponse(oResult)
|
||||||
|
|
||||||
_Logger.Debug("Inserting [{0}] items for datapool [{1}]", oData.sapdaten.Count, oDatapool)
|
_Logger.Debug("Inserting [{0}] items for datapool [{1}]", oData.sapdaten.Count, oDatapool)
|
||||||
|
|
||||||
@ -207,12 +290,15 @@ Public Class frmMain
|
|||||||
Next
|
Next
|
||||||
|
|
||||||
MsgBox($"Query finished! Lines inserted: [{oTotalTotal}]", MsgBoxStyle.Information, Text)
|
MsgBox($"Query finished! Lines inserted: [{oTotalTotal}]", MsgBoxStyle.Information, Text)
|
||||||
ElseIf cmbQuery.Text = "Custom" Then
|
End If
|
||||||
|
|
||||||
|
If cmbQuery.Text = "Custom" Then
|
||||||
If txtOperation.Text = String.Empty Then
|
If txtOperation.Text = String.Empty Then
|
||||||
MsgBox("Please select an operation!", MsgBoxStyle.Exclamation, Text)
|
MsgBox("Please select an operation!", MsgBoxStyle.Exclamation, Text)
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
Dim oDataResponse = _Interface.GetData(txtQuery.Text, txtOperation.Text)
|
Dim oDataResponse = _Interface.GetData(txtQuery.Text, txtOperation.Text)
|
||||||
|
|
||||||
Dim oResult As String
|
Dim oResult As String
|
||||||
@ -223,7 +309,7 @@ Public Class frmMain
|
|||||||
End Using
|
End Using
|
||||||
End Using
|
End Using
|
||||||
|
|
||||||
Dim oPath = "data.auftraege.auftraege"
|
Dim oPath = "data"
|
||||||
Dim oObj As JObject = JObject.Parse(oResult)
|
Dim oObj As JObject = JObject.Parse(oResult)
|
||||||
If _Interface.ReadJSONPathFragmented(oObj, oPath) = False Then
|
If _Interface.ReadJSONPathFragmented(oObj, oPath) = False Then
|
||||||
MsgBox($"JSONPath [{oPath}] was not successfully read", MsgBoxStyle.Critical, Text)
|
MsgBox($"JSONPath [{oPath}] was not successfully read", MsgBoxStyle.Critical, Text)
|
||||||
@ -234,10 +320,8 @@ Public Class frmMain
|
|||||||
txtResult.Text = oIndentedJson
|
txtResult.Text = oIndentedJson
|
||||||
|
|
||||||
TabControl1.SelectedTab = pageRaw
|
TabControl1.SelectedTab = pageRaw
|
||||||
Else
|
|
||||||
MsgBox("Unknown query!", MsgBoxStyle.Exclamation, Text)
|
|
||||||
Exit Sub
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||||
@ -273,7 +357,7 @@ Public Class frmMain
|
|||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Function ConvertResponse(JsonString As String) As SAPData
|
Public Function ConvertSAPDatenResponse(JsonString As String) As SAPData
|
||||||
Dim oObj As JObject = JObject.Parse(JsonString)("data")("sapdaten")
|
Dim oObj As JObject = JObject.Parse(JsonString)("data")("sapdaten")
|
||||||
Dim oString As String = JsonConvert.SerializeObject(oObj, Formatting.None)
|
Dim oString As String = JsonConvert.SerializeObject(oObj, Formatting.None)
|
||||||
Dim oSAPData As SAPData = JsonConvert.DeserializeObject(Of SAPData)(oString)
|
Dim oSAPData As SAPData = JsonConvert.DeserializeObject(Of SAPData)(oString)
|
||||||
@ -281,6 +365,14 @@ Public Class frmMain
|
|||||||
Return oSAPData
|
Return oSAPData
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Function ConvertAuftraegeResponse(JsonString As String) As AuftragData
|
||||||
|
Dim oObj As JObject = JObject.Parse(JsonString)("data")("auftraege")
|
||||||
|
Dim oString As String = JsonConvert.SerializeObject(oObj, Formatting.None)
|
||||||
|
Dim oAuftragData As AuftragData = JsonConvert.DeserializeObject(Of AuftragData)(oString)
|
||||||
|
|
||||||
|
Return oAuftragData
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbQuery.SelectedIndexChanged
|
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbQuery.SelectedIndexChanged
|
||||||
_Config.Config.CurrentQuery = cmbQuery.Text
|
_Config.Config.CurrentQuery = cmbQuery.Text
|
||||||
_Config.Save()
|
_Config.Save()
|
||||||
|
|||||||
@ -86,6 +86,10 @@
|
|||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\..\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll</HintPath>
|
<HintPath>..\..\DDModules\Interfaces\bin\Debug\DigitalData.Modules.Interfaces.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="DigitalData.Modules.Jobs, Version=2.4.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\DDModules\Jobs\bin\Debug\DigitalData.Modules.Jobs.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="DigitalData.Modules.Logging">
|
<Reference Include="DigitalData.Modules.Logging">
|
||||||
<HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
<HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@ -163,6 +167,12 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="ApplicationEvents.vb" />
|
<Compile Include="ApplicationEvents.vb" />
|
||||||
|
<Compile Include="frmBulkInsert.Designer.vb">
|
||||||
|
<DependentUpon>frmBulkInsert.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmBulkInsert.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="frmChecksum.Designer.vb">
|
<Compile Include="frmChecksum.Designer.vb">
|
||||||
<DependentUpon>frmChecksum.vb</DependentUpon>
|
<DependentUpon>frmChecksum.vb</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@ -266,6 +276,9 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="frmBulkInsert.resx">
|
||||||
|
<DependentUpon>frmBulkInsert.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmChecksum.resx">
|
<EmbeddedResource Include="frmChecksum.resx">
|
||||||
<DependentUpon>frmChecksum.vb</DependentUpon>
|
<DependentUpon>frmChecksum.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|||||||
97
GUIs.Test.TestGUI/frmBulkInsert.Designer.vb
generated
Normal file
97
GUIs.Test.TestGUI/frmBulkInsert.Designer.vb
generated
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||||
|
Partial Class frmBulkInsert
|
||||||
|
Inherits System.Windows.Forms.Form
|
||||||
|
|
||||||
|
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Wird vom Windows Form-Designer benötigt.
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
||||||
|
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
||||||
|
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Me.Button1 = New System.Windows.Forms.Button()
|
||||||
|
Me.txtQueryId = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label1 = New System.Windows.Forms.Label()
|
||||||
|
Me.txtQueryFile = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label2 = New System.Windows.Forms.Label()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'Button1
|
||||||
|
'
|
||||||
|
Me.Button1.Location = New System.Drawing.Point(22, 155)
|
||||||
|
Me.Button1.Name = "Button1"
|
||||||
|
Me.Button1.Size = New System.Drawing.Size(75, 23)
|
||||||
|
Me.Button1.TabIndex = 0
|
||||||
|
Me.Button1.Text = "Button1"
|
||||||
|
Me.Button1.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'txtQueryId
|
||||||
|
'
|
||||||
|
Me.txtQueryId.Location = New System.Drawing.Point(22, 40)
|
||||||
|
Me.txtQueryId.Name = "txtQueryId"
|
||||||
|
Me.txtQueryId.Size = New System.Drawing.Size(276, 20)
|
||||||
|
Me.txtQueryId.TabIndex = 1
|
||||||
|
Me.txtQueryId.Text = "16"
|
||||||
|
'
|
||||||
|
'Label1
|
||||||
|
'
|
||||||
|
Me.Label1.AutoSize = True
|
||||||
|
Me.Label1.Location = New System.Drawing.Point(19, 24)
|
||||||
|
Me.Label1.Name = "Label1"
|
||||||
|
Me.Label1.Size = New System.Drawing.Size(47, 13)
|
||||||
|
Me.Label1.TabIndex = 2
|
||||||
|
Me.Label1.Text = "Query Id"
|
||||||
|
'
|
||||||
|
'txtQueryFile
|
||||||
|
'
|
||||||
|
Me.txtQueryFile.Location = New System.Drawing.Point(22, 96)
|
||||||
|
Me.txtQueryFile.Name = "txtQueryFile"
|
||||||
|
Me.txtQueryFile.Size = New System.Drawing.Size(276, 20)
|
||||||
|
Me.txtQueryFile.TabIndex = 3
|
||||||
|
Me.txtQueryFile.Text = "E:\graphql.txt"
|
||||||
|
'
|
||||||
|
'Label2
|
||||||
|
'
|
||||||
|
Me.Label2.AutoSize = True
|
||||||
|
Me.Label2.Location = New System.Drawing.Point(19, 73)
|
||||||
|
Me.Label2.Name = "Label2"
|
||||||
|
Me.Label2.Size = New System.Drawing.Size(54, 13)
|
||||||
|
Me.Label2.TabIndex = 2
|
||||||
|
Me.Label2.Text = "Query File"
|
||||||
|
'
|
||||||
|
'frmBulkInsert
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(800, 450)
|
||||||
|
Me.Controls.Add(Me.Label2)
|
||||||
|
Me.Controls.Add(Me.txtQueryFile)
|
||||||
|
Me.Controls.Add(Me.Label1)
|
||||||
|
Me.Controls.Add(Me.txtQueryId)
|
||||||
|
Me.Controls.Add(Me.Button1)
|
||||||
|
Me.Name = "frmBulkInsert"
|
||||||
|
Me.Text = "frmBulkInsert"
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
Me.PerformLayout()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Friend WithEvents Button1 As Button
|
||||||
|
Friend WithEvents txtQueryId As TextBox
|
||||||
|
Friend WithEvents Label1 As Label
|
||||||
|
Friend WithEvents txtQueryFile As TextBox
|
||||||
|
Friend WithEvents Label2 As Label
|
||||||
|
End Class
|
||||||
120
GUIs.Test.TestGUI/frmBulkInsert.resx
Normal file
120
GUIs.Test.TestGUI/frmBulkInsert.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
81
GUIs.Test.TestGUI/frmBulkInsert.vb
Normal file
81
GUIs.Test.TestGUI/frmBulkInsert.vb
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
Imports System.Data.SqlClient
|
||||||
|
Imports DigitalData.Modules.Database
|
||||||
|
Imports DigitalData.Modules.Filesystem
|
||||||
|
Imports DigitalData.Modules.Jobs
|
||||||
|
Imports DigitalData.Modules.Logging
|
||||||
|
|
||||||
|
Public Class frmBulkInsert
|
||||||
|
Private LogConfig As LogConfig
|
||||||
|
Private Logger As Logger
|
||||||
|
Private Database As MSSQLServer
|
||||||
|
|
||||||
|
Private Writer As GraphQLWriter
|
||||||
|
Private Model As GraphQLModel
|
||||||
|
|
||||||
|
Private Const TABLE_NAME = "TBTEST_BULKINSERT"
|
||||||
|
|
||||||
|
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer)
|
||||||
|
' Dieser Aufruf ist für den Designer erforderlich.
|
||||||
|
InitializeComponent()
|
||||||
|
|
||||||
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||||
|
LogConfig = pLogConfig
|
||||||
|
Logger = LogConfig.GetLogger()
|
||||||
|
Database = pDatabase
|
||||||
|
|
||||||
|
Writer = New GraphQLWriter(LogConfig, Database)
|
||||||
|
Model = New GraphQLModel(LogConfig, Database)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub frmBulkInsert_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||||
|
Dim oSW As New Stopwatch()
|
||||||
|
oSW.Start()
|
||||||
|
Dim oQueryId As Integer = Integer.Parse(txtQueryId.Text)
|
||||||
|
|
||||||
|
Dim oJsonString = IO.File.ReadAllText(txtQueryFile.Text)
|
||||||
|
|
||||||
|
Dim oQueries = Model.GetQueryList()
|
||||||
|
|
||||||
|
Dim oQuery = oQueries.Where(Function(q) q.Id = oQueryId).FirstOrDefault()
|
||||||
|
|
||||||
|
Writer.WriteNewQueryData(oJsonString, oQuery, "Test GraphQL")
|
||||||
|
|
||||||
|
oSW.Stop()
|
||||||
|
|
||||||
|
MsgBox("Time: " & oSW.ElapsedMilliseconds / 1000 & "s")
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Function BulkInsert()
|
||||||
|
Dim oSQL As String = "SELECT AUFTRAGSNR, name, MDNR, KDNR FROM TBCUST_SYNC_API_AUFTRAEGE"
|
||||||
|
Dim oTable = Database.GetDatatable(oSQL)
|
||||||
|
Dim oSw As New Stopwatch()
|
||||||
|
oSw.Start()
|
||||||
|
|
||||||
|
Using oConnection = Database.GetConnection()
|
||||||
|
|
||||||
|
Using oBulkCopy = New SqlBulkCopy(oConnection)
|
||||||
|
|
||||||
|
oBulkCopy.DestinationTableName = "TBCUST_SYNC_API_AUFTRAEGE_COPY"
|
||||||
|
|
||||||
|
oBulkCopy.ColumnMappings.Add(New SqlBulkCopyColumnMapping("AUFTRAGSNR", "AUFTRAGSNR"))
|
||||||
|
oBulkCopy.ColumnMappings.Add(New SqlBulkCopyColumnMapping("name", "name"))
|
||||||
|
oBulkCopy.ColumnMappings.Add(New SqlBulkCopyColumnMapping("MDNR", "MDNR"))
|
||||||
|
oBulkCopy.ColumnMappings.Add(New SqlBulkCopyColumnMapping("KDNR", "KDNR"))
|
||||||
|
|
||||||
|
Try
|
||||||
|
oBulkCopy.WriteToServer(oTable)
|
||||||
|
Catch ex As Exception
|
||||||
|
Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Using
|
||||||
|
|
||||||
|
End Using
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
12
GUIs.Test.TestGUI/frmStart.Designer.vb
generated
12
GUIs.Test.TestGUI/frmStart.Designer.vb
generated
@ -33,6 +33,7 @@ Partial Class frmStart
|
|||||||
Me.Button9 = New System.Windows.Forms.Button()
|
Me.Button9 = New System.Windows.Forms.Button()
|
||||||
Me.Button10 = New System.Windows.Forms.Button()
|
Me.Button10 = New System.Windows.Forms.Button()
|
||||||
Me.btnObjectProperties = New System.Windows.Forms.Button()
|
Me.btnObjectProperties = New System.Windows.Forms.Button()
|
||||||
|
Me.Button11 = New System.Windows.Forms.Button()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
'
|
'
|
||||||
'Button1
|
'Button1
|
||||||
@ -134,6 +135,15 @@ Partial Class frmStart
|
|||||||
Me.btnObjectProperties.Text = "Object Properties"
|
Me.btnObjectProperties.Text = "Object Properties"
|
||||||
Me.btnObjectProperties.UseVisualStyleBackColor = True
|
Me.btnObjectProperties.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
|
'Button11
|
||||||
|
'
|
||||||
|
Me.Button11.Location = New System.Drawing.Point(254, 326)
|
||||||
|
Me.Button11.Name = "Button11"
|
||||||
|
Me.Button11.Size = New System.Drawing.Size(236, 60)
|
||||||
|
Me.Button11.TabIndex = 2
|
||||||
|
Me.Button11.Text = "Bulk Insert"
|
||||||
|
Me.Button11.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
'frmStart
|
'frmStart
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
@ -142,6 +152,7 @@ Partial Class frmStart
|
|||||||
Me.Controls.Add(Me.Button10)
|
Me.Controls.Add(Me.Button10)
|
||||||
Me.Controls.Add(Me.Button9)
|
Me.Controls.Add(Me.Button9)
|
||||||
Me.Controls.Add(Me.Button6)
|
Me.Controls.Add(Me.Button6)
|
||||||
|
Me.Controls.Add(Me.Button11)
|
||||||
Me.Controls.Add(Me.btnObjectProperties)
|
Me.Controls.Add(Me.btnObjectProperties)
|
||||||
Me.Controls.Add(Me.Button5)
|
Me.Controls.Add(Me.Button5)
|
||||||
Me.Controls.Add(Me.Button4)
|
Me.Controls.Add(Me.Button4)
|
||||||
@ -167,4 +178,5 @@ Partial Class frmStart
|
|||||||
Friend WithEvents Button9 As Button
|
Friend WithEvents Button9 As Button
|
||||||
Friend WithEvents Button10 As Button
|
Friend WithEvents Button10 As Button
|
||||||
Friend WithEvents btnObjectProperties As Button
|
Friend WithEvents btnObjectProperties As Button
|
||||||
|
Friend WithEvents Button11 As Button
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -12,7 +12,7 @@ Public Class frmStart
|
|||||||
.ProductName = "TestGUI",
|
.ProductName = "TestGUI",
|
||||||
.CompanyName = "Digital Data"
|
.CompanyName = "Digital Data"
|
||||||
})
|
})
|
||||||
Database = New MSSQLServer(LogConfig, "Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd")
|
Database = New MSSQLServer(LogConfig, "Data Source=SDD-VMP04-SQL17\WISAG;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||||
@ -65,4 +65,9 @@ Public Class frmStart
|
|||||||
Dim oForm As New frmObjectProperties(LogConfig, Database)
|
Dim oForm As New frmObjectProperties(LogConfig, Database)
|
||||||
oForm.ShowDialog()
|
oForm.ShowDialog()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
|
||||||
|
Dim oForm As New frmBulkInsert(LogConfig, Database)
|
||||||
|
oForm.ShowDialog()
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
Loading…
x
Reference in New Issue
Block a user