SensusOracle.Database : Insert/update of VT_ZAEHLER_PD modified, ResultsMI.DeleteFromOracleForm
This commit is contained in:
+243
@@ -0,0 +1,243 @@
|
||||
namespace TBF.UI.ResultsMI
|
||||
{
|
||||
partial class DeleteFromOracleForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.selectWhatToDeleteGroupBox = new System.Windows.Forms.GroupBox();
|
||||
this.waterMetersTextBox = new System.Windows.Forms.TextBox();
|
||||
this.waterMetersRadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.batchRadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.startButton = new System.Windows.Forms.Button();
|
||||
this.activityGroupBox = new System.Windows.Forms.GroupBox();
|
||||
this.activityTextBox = new System.Windows.Forms.TextBox();
|
||||
this.wmTypeGroupBox = new System.Windows.Forms.GroupBox();
|
||||
this.s640RadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.s620RadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.iPerlRadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.batchNrTextBox = new System.Windows.Forms.TextBox();
|
||||
this.selectWhatToDeleteGroupBox.SuspendLayout();
|
||||
this.activityGroupBox.SuspendLayout();
|
||||
this.wmTypeGroupBox.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// selectWhatToDeleteGroupBox
|
||||
//
|
||||
this.selectWhatToDeleteGroupBox.Controls.Add(this.waterMetersRadioButton);
|
||||
this.selectWhatToDeleteGroupBox.Controls.Add(this.batchRadioButton);
|
||||
this.selectWhatToDeleteGroupBox.Location = new System.Drawing.Point(117, 16);
|
||||
this.selectWhatToDeleteGroupBox.Name = "selectWhatToDeleteGroupBox";
|
||||
this.selectWhatToDeleteGroupBox.Size = new System.Drawing.Size(134, 110);
|
||||
this.selectWhatToDeleteGroupBox.TabIndex = 0;
|
||||
this.selectWhatToDeleteGroupBox.TabStop = false;
|
||||
this.selectWhatToDeleteGroupBox.Text = "Select what to delete";
|
||||
//
|
||||
// waterMetersTextBox
|
||||
//
|
||||
this.waterMetersTextBox.Location = new System.Drawing.Point(267, 70);
|
||||
this.waterMetersTextBox.Multiline = true;
|
||||
this.waterMetersTextBox.Name = "waterMetersTextBox";
|
||||
this.waterMetersTextBox.Size = new System.Drawing.Size(211, 56);
|
||||
this.waterMetersTextBox.TabIndex = 2;
|
||||
//
|
||||
// waterMetersRadioButton
|
||||
//
|
||||
this.waterMetersRadioButton.AutoSize = true;
|
||||
this.waterMetersRadioButton.Location = new System.Drawing.Point(16, 45);
|
||||
this.waterMetersRadioButton.Name = "waterMetersRadioButton";
|
||||
this.waterMetersRadioButton.Size = new System.Drawing.Size(88, 17);
|
||||
this.waterMetersRadioButton.TabIndex = 1;
|
||||
this.waterMetersRadioButton.Text = "Water meters";
|
||||
this.waterMetersRadioButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// batchRadioButton
|
||||
//
|
||||
this.batchRadioButton.AutoSize = true;
|
||||
this.batchRadioButton.Checked = true;
|
||||
this.batchRadioButton.Location = new System.Drawing.Point(16, 23);
|
||||
this.batchRadioButton.Name = "batchRadioButton";
|
||||
this.batchRadioButton.Size = new System.Drawing.Size(53, 17);
|
||||
this.batchRadioButton.TabIndex = 0;
|
||||
this.batchRadioButton.TabStop = true;
|
||||
this.batchRadioButton.Text = "Batch";
|
||||
this.batchRadioButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// startButton
|
||||
//
|
||||
this.startButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.startButton.Location = new System.Drawing.Point(494, 24);
|
||||
this.startButton.Name = "startButton";
|
||||
this.startButton.Size = new System.Drawing.Size(70, 40);
|
||||
this.startButton.TabIndex = 1;
|
||||
this.startButton.Text = "Start";
|
||||
this.startButton.UseVisualStyleBackColor = true;
|
||||
this.startButton.Click += new System.EventHandler(this.startButton_Click);
|
||||
//
|
||||
// activityGroupBox
|
||||
//
|
||||
this.activityGroupBox.Controls.Add(this.activityTextBox);
|
||||
this.activityGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.activityGroupBox.Location = new System.Drawing.Point(0, 0);
|
||||
this.activityGroupBox.Name = "activityGroupBox";
|
||||
this.activityGroupBox.Size = new System.Drawing.Size(584, 317);
|
||||
this.activityGroupBox.TabIndex = 2;
|
||||
this.activityGroupBox.TabStop = false;
|
||||
this.activityGroupBox.Text = "Activity";
|
||||
//
|
||||
// activityTextBox
|
||||
//
|
||||
this.activityTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.activityTextBox.Location = new System.Drawing.Point(3, 16);
|
||||
this.activityTextBox.Multiline = true;
|
||||
this.activityTextBox.Name = "activityTextBox";
|
||||
this.activityTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
|
||||
this.activityTextBox.Size = new System.Drawing.Size(578, 298);
|
||||
this.activityTextBox.TabIndex = 0;
|
||||
//
|
||||
// wmTypeGroupBox
|
||||
//
|
||||
this.wmTypeGroupBox.Controls.Add(this.s640RadioButton);
|
||||
this.wmTypeGroupBox.Controls.Add(this.s620RadioButton);
|
||||
this.wmTypeGroupBox.Controls.Add(this.iPerlRadioButton);
|
||||
this.wmTypeGroupBox.Location = new System.Drawing.Point(13, 15);
|
||||
this.wmTypeGroupBox.Name = "wmTypeGroupBox";
|
||||
this.wmTypeGroupBox.Size = new System.Drawing.Size(98, 111);
|
||||
this.wmTypeGroupBox.TabIndex = 3;
|
||||
this.wmTypeGroupBox.TabStop = false;
|
||||
this.wmTypeGroupBox.Text = "WM Type";
|
||||
//
|
||||
// s640RadioButton
|
||||
//
|
||||
this.s640RadioButton.AutoSize = true;
|
||||
this.s640RadioButton.Location = new System.Drawing.Point(15, 65);
|
||||
this.s640RadioButton.Name = "s640RadioButton";
|
||||
this.s640RadioButton.Size = new System.Drawing.Size(43, 17);
|
||||
this.s640RadioButton.TabIndex = 2;
|
||||
this.s640RadioButton.TabStop = true;
|
||||
this.s640RadioButton.Text = "640";
|
||||
this.s640RadioButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// s620RadioButton
|
||||
//
|
||||
this.s620RadioButton.AutoSize = true;
|
||||
this.s620RadioButton.Location = new System.Drawing.Point(15, 44);
|
||||
this.s620RadioButton.Name = "s620RadioButton";
|
||||
this.s620RadioButton.Size = new System.Drawing.Size(43, 17);
|
||||
this.s620RadioButton.TabIndex = 1;
|
||||
this.s620RadioButton.TabStop = true;
|
||||
this.s620RadioButton.Text = "620";
|
||||
this.s620RadioButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// iPerlRadioButton
|
||||
//
|
||||
this.iPerlRadioButton.AutoSize = true;
|
||||
this.iPerlRadioButton.Checked = true;
|
||||
this.iPerlRadioButton.Location = new System.Drawing.Point(15, 21);
|
||||
this.iPerlRadioButton.Name = "iPerlRadioButton";
|
||||
this.iPerlRadioButton.Size = new System.Drawing.Size(55, 17);
|
||||
this.iPerlRadioButton.TabIndex = 0;
|
||||
this.iPerlRadioButton.TabStop = true;
|
||||
this.iPerlRadioButton.Text = "iPERL";
|
||||
this.iPerlRadioButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer1.IsSplitterFixed = true;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.batchNrTextBox);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.wmTypeGroupBox);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.waterMetersTextBox);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.startButton);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.selectWhatToDeleteGroupBox);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.activityGroupBox);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(584, 461);
|
||||
this.splitContainer1.SplitterDistance = 140;
|
||||
this.splitContainer1.TabIndex = 4;
|
||||
//
|
||||
// batchNrTextBox
|
||||
//
|
||||
this.batchNrTextBox.Location = new System.Drawing.Point(378, 33);
|
||||
this.batchNrTextBox.Name = "batchNrTextBox";
|
||||
this.batchNrTextBox.Size = new System.Drawing.Size(100, 20);
|
||||
this.batchNrTextBox.TabIndex = 3;
|
||||
//
|
||||
// DeleteFromOracleForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(584, 461);
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.MinimumSize = new System.Drawing.Size(600, 500);
|
||||
this.Name = "DeleteFromOracleForm";
|
||||
this.Text = "Delete Data From Oracle";
|
||||
this.selectWhatToDeleteGroupBox.ResumeLayout(false);
|
||||
this.selectWhatToDeleteGroupBox.PerformLayout();
|
||||
this.activityGroupBox.ResumeLayout(false);
|
||||
this.activityGroupBox.PerformLayout();
|
||||
this.wmTypeGroupBox.ResumeLayout(false);
|
||||
this.wmTypeGroupBox.PerformLayout();
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.PerformLayout();
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.GroupBox selectWhatToDeleteGroupBox;
|
||||
private System.Windows.Forms.TextBox waterMetersTextBox;
|
||||
private System.Windows.Forms.RadioButton waterMetersRadioButton;
|
||||
private System.Windows.Forms.RadioButton batchRadioButton;
|
||||
private System.Windows.Forms.Button startButton;
|
||||
private System.Windows.Forms.GroupBox activityGroupBox;
|
||||
private System.Windows.Forms.TextBox activityTextBox;
|
||||
private System.Windows.Forms.GroupBox wmTypeGroupBox;
|
||||
private System.Windows.Forms.RadioButton s640RadioButton;
|
||||
private System.Windows.Forms.RadioButton s620RadioButton;
|
||||
private System.Windows.Forms.RadioButton iPerlRadioButton;
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.TextBox batchNrTextBox;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,388 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using NHibernate;
|
||||
#if MANAGED
|
||||
using Oracle.ManagedDataAccess.Client;
|
||||
#else
|
||||
using Oracle.DataAccess.Client;
|
||||
#endif
|
||||
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Output.DB.SensusOracle;
|
||||
using TBF.Rig.Sequences;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
|
||||
namespace TBF.UI.ResultsMI
|
||||
{
|
||||
enum WMType
|
||||
{
|
||||
Iperl,
|
||||
S620,
|
||||
S640,
|
||||
}
|
||||
|
||||
public partial class DeleteFromOracleForm : Form
|
||||
{
|
||||
string testBenchName;
|
||||
int testBenchId;
|
||||
WMType wmType;
|
||||
bool deleteBatch;
|
||||
int batchNumber;
|
||||
IList<string> pcbNumbers;
|
||||
|
||||
public DeleteFromOracleForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
testBenchName = ProcessData.BenchInfo.TestBenchName;
|
||||
testBenchId = ProcessData.BenchInfo.TestBenchId;
|
||||
|
||||
batchNumber = 0;
|
||||
pcbNumbers = new List<string>();
|
||||
}
|
||||
|
||||
bool GetSelection()
|
||||
{
|
||||
wmType = iPerlRadioButton.Checked ? WMType.Iperl : s620RadioButton.Checked ? WMType.S620 : WMType.S640;
|
||||
|
||||
deleteBatch = batchRadioButton.Checked;
|
||||
|
||||
if (!int.TryParse(batchNrTextBox.Text, out batchNumber) || batchNumber <= 0)
|
||||
{
|
||||
batchNumber = 0;
|
||||
}
|
||||
|
||||
pcbNumbers.Clear();
|
||||
string[] items = waterMetersTextBox.Text.Split(new char[] { ',', ';', '\r', '\n' });
|
||||
foreach (var item in items)
|
||||
{
|
||||
string itm = item.Trim();
|
||||
if (itm.Length == 12) pcbNumbers.Add(itm);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void startButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
activityTextBox.Text = string.Empty;
|
||||
|
||||
if (!GetSelection())
|
||||
{
|
||||
MessageBox.Show("Invalid selection of data to be deleted");
|
||||
return;
|
||||
}
|
||||
|
||||
OracleConnection conn;
|
||||
///
|
||||
if (ProcessData.OracleDB == null ||
|
||||
ProcessData.OracleDB.DebugLevel != DebugMode.Normal)
|
||||
{
|
||||
MessageBox.Show("No Oracle database or it is in simulation mode");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (DBUsed.Production)
|
||||
{
|
||||
default:
|
||||
case DBUsed.Production: conn = ProcessData.OracleDB.ProductionDB; break;
|
||||
case DBUsed.Quality: conn = ProcessData.OracleDB.QualityDB; break;
|
||||
case DBUsed.Test: conn = ProcessData.OracleDB.TestDB; break;
|
||||
}
|
||||
|
||||
if (conn == null)
|
||||
{
|
||||
MessageBox.Show("No connection to Oracle database");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/// TODO: Implement database selection
|
||||
MessageBox.Show(string.Format("Výsledky budú zapísané do produkčnej databázy"),
|
||||
Strings.Information,
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Information);
|
||||
|
||||
if (deleteBatch)
|
||||
{
|
||||
activityTextBox.Text = string.Format("Going to delete batch {0}{1}", batchNumber, Environment.NewLine);
|
||||
|
||||
if (!DeleteBatch(conn, batchNumber))
|
||||
{
|
||||
MessageBox.Show(string.Format("Deleting batch {0} failed", batchNumber));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
activityTextBox.Text = string.Format("Going to delete water meters:{0}", Environment.NewLine);
|
||||
foreach (var pcb in pcbNumbers)
|
||||
{
|
||||
activityTextBox.Text += string.Format("{0}{1}", pcb, Environment.NewLine);
|
||||
}
|
||||
|
||||
if (!DeleteWaterMeters(conn, pcbNumbers))
|
||||
{
|
||||
MessageBox.Show("Deleting iPERL-s failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool DeleteBatch(OracleConnection conn, int batchNr)
|
||||
{
|
||||
OracleCommand cmd;
|
||||
OracleDataReader dr;
|
||||
int deletedRows;
|
||||
|
||||
try
|
||||
{
|
||||
conn.Open(); /// Open the Oracle database
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
activityTextBox.Text += string.Format("Cannot open Oracle database: {0}", exc.Message);
|
||||
conn.Close();
|
||||
return false;
|
||||
}
|
||||
|
||||
/// Get a list of water meters
|
||||
IList<int> pruefindexes;
|
||||
IList<string> waterMeters = GetListOfWaterMeters(conn, batchNr, out pruefindexes);
|
||||
|
||||
/// Read this batch tests data from VT_PRUEFDURCHFLUSS_PD
|
||||
IList<int> testNumbers = new List<int>(); ;
|
||||
cmd = new OracleCommand("SELECT pruefungsnr " +
|
||||
"FROM vt_pruefdurchfluss_pd " +
|
||||
"WHERE anbid = :1 AND id_pruefstand = :2 AND id_wzpruefreihe = :3", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Int32, Value = 18000 + testBenchId });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "3", OracleDbType = OracleDbType.Int32, Value = batchNr });
|
||||
///
|
||||
dr = cmd.ExecuteReader();
|
||||
bool found = false;
|
||||
while (dr.Read())
|
||||
{
|
||||
int i = 0;
|
||||
int pruefungsnr = dr.GetInt32(i++);
|
||||
testNumbers.Add(pruefungsnr);
|
||||
activityTextBox.Text += string.Format("pruefungsnr = {0} found in table vt_pruefdurchfluss_p, batch = {1}{2}", pruefungsnr, batchNr, Environment.NewLine);
|
||||
found = true;
|
||||
}
|
||||
dr.Close();
|
||||
if (!found) activityTextBox.Text += string.Format("Nothing found in table vt_pruefdurchfluss_pd, batch = {0}{1}", batchNr, Environment.NewLine);
|
||||
|
||||
/// Transaction start
|
||||
OracleTransaction transaction = conn.BeginTransaction();
|
||||
|
||||
///
|
||||
/// Delete water meters
|
||||
///
|
||||
try
|
||||
{
|
||||
for (int i = 0; i < waterMeters.Count; i++)
|
||||
{
|
||||
string pcbNr = waterMeters[i];
|
||||
int pruefindex = pruefindexes[i] % 100;
|
||||
///
|
||||
foreach (var pruefungsnr in testNumbers)
|
||||
{
|
||||
cmd = new OracleCommand("DELETE FROM vt_pruefreihe_ist_pd " +
|
||||
"WHERE anbid = :1 AND vt_fernum = :2 AND pruefungsnr = :3 AND pruefindex = :4", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Varchar2, Value = pcbNr });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "3", OracleDbType = OracleDbType.Int32, Value = pruefungsnr });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "4", OracleDbType = OracleDbType.Int32, Value = 100 * testBenchId + pruefindex });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_pruefreihe_ist_pd, pcb# = {1}, test# = {2}{3}", deletedRows, pcbNr, pruefungsnr, Environment.NewLine);
|
||||
}
|
||||
|
||||
if (wmType == WMType.Iperl)
|
||||
{
|
||||
cmd = new OracleCommand("DELETE FROM vt_ip_zaehler_pindex_pd " +
|
||||
"WHERE anbid = :1 AND vt_fernum = :2 AND pruefindex = :3", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Varchar2, Value = pcbNr });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "3", OracleDbType = OracleDbType.Int32, Value = 100 * testBenchId + pruefindex });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_ip_zaehler_pindex_pd, pcb# = {1}{2}", deletedRows, pcbNr, Environment.NewLine);
|
||||
}
|
||||
|
||||
|
||||
cmd = new OracleCommand("DELETE FROM vt_zaehler_pindex_pd " +
|
||||
"WHERE anbid = :1 AND vt_fernum = :2 AND pruefindex = :3", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Varchar2, Value = pcbNr });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "3", OracleDbType = OracleDbType.Int32, Value = 100 * testBenchId + pruefindex });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_zaehler_pindex_pd, pcb# = {1}{2}", deletedRows, pcbNr, Environment.NewLine);
|
||||
|
||||
|
||||
cmd = new OracleCommand("DELETE FROM vt_zaehler_pd " +
|
||||
"WHERE anbid = :1 AND vt_fernum = :2", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Varchar2, Value = pcbNr });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_zaehler_pd, pcb# = {1}{2}", deletedRows, pcbNr, Environment.NewLine);
|
||||
}
|
||||
|
||||
///
|
||||
/// Delete (common) batch data
|
||||
///
|
||||
cmd = new OracleCommand("DELETE FROM vt_pruefdurchfluss_pd " +
|
||||
"WHERE anbid = :1 AND id_pruefstand = :2 AND id_wzpruefreihe = :3", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Int32, Value = 18000 + testBenchId });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "3", OracleDbType = OracleDbType.Int32, Value = batchNr });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_pruefdurchfluss_pd, batchNr# = {1}{2}", deletedRows, batchNr, Environment.NewLine);
|
||||
|
||||
|
||||
cmd = new OracleCommand("DELETE FROM vt_pruefreihe_pd " +
|
||||
"WHERE anbid = :1 AND id_pruefstand = :2 AND id_wzpruefreihe = :3", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Int32, Value = 18000 + testBenchId });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "3", OracleDbType = OracleDbType.Int32, Value = batchNr });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_pruefreihe_pd, batchNr# = {1}{2}", deletedRows, batchNr, Environment.NewLine);
|
||||
|
||||
|
||||
/// Transaction end
|
||||
transaction.Commit();
|
||||
conn.Close();
|
||||
activityTextBox.Text += string.Format("Successfully completed");
|
||||
return true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
transaction.Rollback();
|
||||
conn.Close();
|
||||
activityTextBox.Text += string.Format("Transaction failed: {0}{1}", exc.Message, Environment.NewLine);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
IList<string> GetListOfWaterMeters(OracleConnection conn, int batchNr, out IList<int> pruefindexes)
|
||||
{
|
||||
IList<string> pcbNrs = new List<string>();
|
||||
pruefindexes = new List<int>();
|
||||
OracleCommand cmd;
|
||||
OracleDataReader dr;
|
||||
|
||||
cmd = new OracleCommand("SELECT vt_fernum, pruefindex " +
|
||||
"FROM vt_zaehler_pindex_pd " +
|
||||
"WHERE anbid = :1 AND id_pruefstand = :2 AND id_wzpruefreihe = :3", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Int32, Value = 18000 + testBenchId });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "3", OracleDbType = OracleDbType.Int32, Value = batchNr });
|
||||
|
||||
dr = cmd.ExecuteReader();
|
||||
activityTextBox.Text += string.Format("Water meters:{0}", Environment.NewLine);
|
||||
while (dr.Read())
|
||||
{
|
||||
int i = 0;
|
||||
string pcbNr = dr.GetString(i++);
|
||||
pcbNrs.Add(pcbNr);
|
||||
pruefindexes.Add(dr.GetInt32(i++));
|
||||
activityTextBox.Text += string.Format("{0}, ", pcbNr);
|
||||
}
|
||||
dr.Close();
|
||||
activityTextBox.Text += Environment.NewLine;
|
||||
activityTextBox.Text += Environment.NewLine;
|
||||
|
||||
return pcbNrs;
|
||||
}
|
||||
|
||||
bool DeleteWaterMeters(OracleConnection conn, IList<string> waterMeters)
|
||||
{
|
||||
OracleCommand cmd;
|
||||
OracleDataReader dr;
|
||||
int deletedRows;
|
||||
|
||||
try
|
||||
{
|
||||
conn.Open(); /// Open the Oracle database
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
activityTextBox.Text += string.Format("Cannot open Oracle database: {0}", exc.Message);
|
||||
conn.Close();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/// Transaction start
|
||||
OracleTransaction transaction = conn.BeginTransaction();
|
||||
|
||||
///
|
||||
/// Delete water meters
|
||||
///
|
||||
try
|
||||
{
|
||||
for (int i = 0; i < waterMeters.Count; i++)
|
||||
{
|
||||
string pcbNr = waterMeters[i];
|
||||
///
|
||||
cmd = new OracleCommand("DELETE FROM vt_pruefreihe_ist_pd " +
|
||||
"WHERE anbid = :1 AND vt_fernum = :2", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Varchar2, Value = pcbNr });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_pruefreihe_ist_pd, pcb# = {1}{2}", deletedRows, pcbNr, Environment.NewLine);
|
||||
|
||||
|
||||
if (wmType == WMType.Iperl)
|
||||
{
|
||||
cmd = new OracleCommand("DELETE FROM vt_ip_zaehler_pindex_pd " +
|
||||
"WHERE anbid = :1 AND vt_fernum = :2", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Varchar2, Value = pcbNr });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_ip_zaehler_pindex_pd, pcb# = {1}{2}", deletedRows, pcbNr, Environment.NewLine);
|
||||
}
|
||||
|
||||
|
||||
cmd = new OracleCommand("DELETE FROM vt_zaehler_pindex_pd " +
|
||||
"WHERE anbid = :1 AND vt_fernum = :2", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Varchar2, Value = pcbNr });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_zaehler_pindex_pd, pcb# = {1}{2}", deletedRows, pcbNr, Environment.NewLine);
|
||||
|
||||
|
||||
cmd = new OracleCommand("DELETE FROM vt_zaehler_pd " +
|
||||
"WHERE anbid = :1 AND vt_fernum = :2", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Int32, Value = ProcessData.OracleDB.Anbid_Producer });
|
||||
cmd.Parameters.Add(new OracleParameter { ParameterName = "2", OracleDbType = OracleDbType.Varchar2, Value = pcbNr });
|
||||
///
|
||||
deletedRows = cmd.ExecuteNonQuery();
|
||||
activityTextBox.Text += string.Format("{0} rows deleted from vt_zaehler_pd, pcb# = {1}{2}", deletedRows, pcbNr, Environment.NewLine);
|
||||
}
|
||||
|
||||
/// Transaction end
|
||||
transaction.Commit();
|
||||
conn.Close();
|
||||
activityTextBox.Text += string.Format("Successfully completed");
|
||||
return true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
transaction.Rollback();
|
||||
conn.Close();
|
||||
activityTextBox.Text += string.Format("Transaction failed: {0}{1}", exc.Message, Environment.NewLine);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user