private bool disposedValue = false; // To detect redundant calls // IDisposable protected virtual void Dispose(bool disposing) { if (!this.disposedValue) { if (disposing) { // TODO: free other state (managed objects). //disposing DPE_GlobalDefinitions.DISPOSE_DPE_PROXY_PublicationsDataBase(); } // TODO: free your own state (unmanaged objects). // TODO: set large fields to null. } this.disposedValue = true; }
private void WriteDataUPDATE(DPE_PublicationData data) { try { lock (_locker) { using (var cnn = new System.Data.SqlClient.SqlConnection(this._dataBaseConnectionString)) { cnn.Open(); using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand()) { cmd.Connection = cnn; this._dataType = DPE_GlobalDefinitions.GetPublicationValueDataTypeAsString(data.Value); this._dataValue = DPE_GlobalDefinitions.GetPublicationValueAsString(data.VariableName, System.Convert.ToInt32(data.Value)); string attributesAsString = ""; if (data.DataAttributesTable.Count > 0) { CustomHashTable table = data.DataAttributesTable.ToSTXHashTable(); attributesAsString = UtilitiesLibrary.Data.XMLDataFormatting.GetValueAsString(data.VariableName, table); } cmd.CommandText = "INSERT into " + this._publicationName + "(dataname,dataType, value, attributesTable , isDataReset)" + "VALUES(\'" + data.VariableName + "\',\'" + this._dataType + "\',\'" + this._dataValue + "\',\'" + attributesAsString + "\',0)"; try { cmd.ExecuteNonQuery(); this._UPDATE_StatisticsHandler.LogEvent(data.VariableName); } catch (Exception ex) { string msg = "Error performing UPDATE on \'" + data.VariableName + "\' from publication \'" + this._publicationName + "\': " + ex.Message; Exception newEX = new Exception(msg); throw (newEX); } } //--------- cmd } //using del sql connection } } catch (Exception ex) { CustomEventLog.WriteEntry(ex); } }
private void EventHandling_readTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { //***************************************************************************** // STOPS THE TIMER //***************************************************************************** this._readTimer.Stop(); try { if (this._isFirstTimeRead) { //retrieves the server datetime to retrieve the data using datetime this._lastReadDatetime = this.GetPublicationsServerDAtetime(); this.dateAsstring = NowToStandardODBCStringFormat(this._lastReadDatetime); this._dataReadCommandTest = "Select * from " + this._tablename + " where datetime >= \'" + dateAsstring + "\' order by [datetime] asc"; this._isFirstTimeRead = false; } else { if (this._lastRowIDReaded > 0) { //uses the row id as to retrieve new data this._dataReadCommandTest = "Select * from " + this._tablename + " where rowID > " + System.Convert.ToString(this._lastRowIDReaded) + " order by [rowID] asc"; } else { //uses the datetime as to retrieve new data this.dateAsstring = NowToStandardODBCStringFormat(this._lastReadDatetime); this._dataReadCommandTest = "Select * from " + this._tablename + " where datetime >= \'" + dateAsstring + "\' order by [datetime] asc"; } } using (System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection(this._dataBaseSonnectionString)) { try { cnn.Open(); using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand()) { cmd.Connection = cnn; //************************************************************ //PREPARES THE QUERY TO THE PUBLICATION //************************************************************ cmd.CommandText = this._dataReadCommandTest; using (System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter()) { da.SelectCommand = cmd; using (DataTable dt = new DataTable()) { //****************************************** // RETRIEVS THE DATA FROM DATA SOURCE da.Fill(dt); //****************************************** //************************************************************ //DATA TREATMENT if (dt.Rows.Count > 0) { DataRow row = default(DataRow); IEnumerator enumm = dt.Rows.GetEnumerator(); while (enumm.MoveNext()) { row = (DataRow )enumm.Current; //***************************************************** // transfors the row into a data update or data reset //***************************************************** try { long _rowID; string _dataType = ""; string _value = ""; string _dataName = ""; DateTime _dataDatetime = System.Convert.ToDateTime(null); bool _isDataReset = false; string _attributesTAble = ""; _rowID = (long)(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_ROWID]); _dataType = System.Convert.ToString(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_DATA_TYPE]); _value = System.Convert.ToString(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_VALUE]); _dataName = System.Convert.ToString(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_DATA_NAME]); _attributesTAble = System.Convert.ToString(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_ATTRIBUTES_TABLE]); try { _dataDatetime = System.Convert.ToDateTime(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_DATA_DATETIME]); } catch (Exception) { _dataDatetime = DateTime.Now; } _isDataReset = System.Convert.ToBoolean(row[DPE_GlobalDefinitions.DPE_PUBLICATION_TABLE_DEFINITION_IS_DATA_RESET]); //------------------------------------------------ if (!_isDataReset) { DPE_PublicationData data = default(DPE_PublicationData); data = DPE_GlobalDefinitions.GetPublicationValueFromString(this._publicationName, _dataName, _dataType, _value); AttributesTable attrTAble = default(AttributesTable); //------------------------------------------------ //verifies if there are a parameters table if (_attributesTAble.Length > 0) { DataVariable dataVar = XMLDataFormatting.RetrieveDataVariableFromXMLString(_attributesTAble); CustomHashTable table = (CustomHashTable)dataVar.Data; attrTAble = new AttributesTable(table); data.AttachAttibutesTable(attrTAble); } this._DATA_UPDATE_PCQ.Enqueue(data); } else { this._DATA_RESET_PCQ.Enqueue(_dataName); } } catch (Exception ex) { CustomEventLog.WriteEntry(ex); } } } //************************************************************ //************************************************************ //GETS THE LAST TABLE REFERENCE DATE TIME and ROWid FROM THE DATA IF IS AVAILABLE try { if (dt.Rows.Count > 0) { this.SetLastReadDateTiemeAndRowID(dt); } } catch (Exception) { } //************************************************************ } //----------- data table } //-------- SqlDataAdapter } //-------- SqlCommand } catch (System.Data.SqlClient.SqlException sqlex) { //overrides the error qhen if (sqlex.ErrorCode != -2146232060) { CustomEventLog.WriteEntry(sqlex); } } catch (Exception ex) { CustomEventLog.DisplayEvent(EventLogEntryType.Error, ex.ToString()); } finally { if (this._keepReading) { this._readTimer.Start(); } try { cnn.Close(); cnn.Dispose(); } catch (Exception) { } } } //------- sqlConnection } catch (Exception ex) { CustomEventLog.DisplayEvent(EventLogEntryType.Error, ex.ToString()); } }