Beispiel #1
0
        public MainDBClass()
        {
            sqliteProvider = new DB_Class_SQLite.DBClassSQLite();

            string        conString     = string.Empty;
            int           bUseSQlServer = 0;
            DBClassSQLite db1           = new DBClassSQLite();

            db1.OpenDB();
            if (db1.isTableExist("tb_SqlServer_Info"))
            {
                db1.getSqlServerInfo(out conString, out bUseSQlServer);
            }
            db1.CloseDB();

            if ((bUseSQlServer == 1) && (!string.IsNullOrEmpty(conString)))
            {
                useDb             = dbUsedType.db_SqlServer;
                sqlServerProvider = new DBClassSqlServer.DBSqlServer(DBClass_SQLServer.UtilSqlServer.ConvertConnectionString(conString));
                try
                {
                    OpenDB();
                    CloseDB();
                }
                catch
                {
                    useDb = dbUsedType.db_SqlLite;
                    ErrorMessage.ExceptionMessageBox.Show("Unable to connect to SQL Server Database - Application start with local database to check configuration", "Information");
                }
            }
        }
 public QuartzTriggerThread(IDBInterface dbInterface, DatasetConfig datasetConfig, Dictionary<ConnectionConfig, Object> activConnections, bool StartedAsService)
 {
     this.StartedAsService = StartedAsService;
     this.dbInterface = dbInterface;
     this.datasetConfig = datasetConfig;
     this.activConnections = activConnections;
 }
Beispiel #3
0
 public QuartzTriggerThread(IDBInterface dbInterface, DatasetConfig datasetConfig, Dictionary <ConnectionConfig, Object> activConnections, bool StartedAsService)
 {
     this.StartedAsService = StartedAsService;
     this.dbInterface      = dbInterface;
     this.datasetConfig    = datasetConfig;
     this.activConnections = activConnections;
 }
        public IEnumerable <ProtocolRow> GetProtocolData(string storageName, int startRow, int maxRows, string filter, DateTime?FromDate, DateTime?ToDate)
        {
            var datasetConfig = ProtokollerConfiguration.ActualConfigInstance.Datasets.FirstOrDefault(s => s.Name == storageName);

            IDBInterface dbInterface = StorageHelper.GetStorage(datasetConfig, null);

            dbInterface.Connect_To_Database(datasetConfig.Storage);
            IDBViewable        dbViewable = dbInterface as IDBViewable;
            List <ProtocolRow> list       = new List <ProtocolRow>();
            DataTable          table      = dbViewable.ReadData(datasetConfig, filter, startRow, maxRows, FromDate, ToDate);

            foreach (DataRow row in table.Rows)
            {
                ProtocolRow storageLine = new ProtocolRow();
                var         date        = row["datetime"];
                if (date is DateTime)
                {
                    storageLine.Timestamp = (DateTime)date;
                }
                else
                {
                    storageLine.Timestamp = DateTime.ParseExact(row["datetime"].ToString(), "yyyy.MM.dd - HH:mm:ss.fff", null);
                }

                storageLine.Telegram = Convert.ToString(row["data"]);
                list.Add(storageLine);
            }

            return(list);
        }
Beispiel #5
0
        public void Load()
        {
            if (ID != -1)
            {
                IDBInterface db = DBInterface.CreatePointer();

                db.StoredProcedure("mile_card_status_select_by_id");
                db.AddParameter("@inIdMileCardStatus", MySql.Data.MySqlClient.MySqlDbType.Int32, ID);
                db.AddOutParameter("@outStatus", MySql.Data.MySqlClient.MySqlDbType.String);
                db.AddOutParameter("@outMinMiles", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outMaxMiles", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outIdAviaCompanyUnion", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outIdAviaCompany", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outNote", MySql.Data.MySqlClient.MySqlDbType.String);

                db.Execute();

                Name   = db.GetOutParameterStr("@outStatus");
                MinVal = db.GetOutParameterInt("@outMinMiles");
                MaxVal = db.GetOutParameterInt("@outMaxMiles");

                Note = db.GetOutParameterStr("@outNote");

                AviaCompanyID      = db.GetOutParameterInt("@outIdAviaCompany");
                AviaCompanyUnionID = db.GetOutParameterInt("@outIdAviaCompanyUnion");

                Changed = false;
            }
        }
        private void cmbStorage_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            lblError.Content = null;
            if (dbIf != null)
                dbIf.Dispose();
            dbIf = null;
            dbView = null;

            lblDataCount.Content = null;
            grdDatasetFields.ItemsSource = null;

            datasetConfig = cmbStorage.SelectedItem as DatasetConfig;
            dbIf = StorageHelper.GetStorage(datasetConfig, null);
            dbIf.Connect_To_Database(datasetConfig.Storage);
            dbView = dbIf as IDBViewable;
            dbViewSQL = dbIf as IDBViewableSQL;

            txtSQL.IsEnabled = false;
            cmdSQL.IsEnabled = false;
            txtSearch.IsEnabled = false;
            cmdSearch.IsEnabled = false;

            try
            {
                if (dbView != null)
                {
                    txtSQL.Text = "";
                    CurrentNumber = 0;
                    DataTable tbl = dbView.ReadData(datasetConfig, null, CurrentNumber,  1000, null, null);
                    if (tbl != null)
                        grdDatasetFields.ItemsSource = tbl.DefaultView;
                    lblDataCount.Content = dbView.ReadCount(datasetConfig);
                }

                if (!string.IsNullOrEmpty(datasetConfig.DateTimeDatabaseField))
                {
                    /*dbFieldNames = datasetConfig.DateTimeDatabaseField;
                    foreach (var datasetConfigRow in datasetConfig.DatasetConfigRows)
                    {
                        if (datasetConfigRow.DatabaseField.ToLower().Trim() != datasetConfig.DateTimeDatabaseField.ToLower().Trim())
                            dbFieldNames += ", " + datasetConfigRow.DatabaseField;
                    }*/
                    dbFieldNames = datasetConfig.DateTimeDatabaseField + ",*";
                }

                if (dbViewSQL != null)
                {
                    txtSQL.Text = "SELECT " + dbFieldNames + " FROM " + datasetConfig.Name + " ORDER BY id DESC LIMIT " + 1000.ToString();
                    txtSQL.IsEnabled = true;
                    cmdSQL.IsEnabled = true;
                    txtSearch.IsEnabled = true;
                    cmdSearch.IsEnabled = true;
                }
            }
            catch (Exception ex)
            {
                lblError.Content = ex.Message;
            }
        }
        public TimeTriggerWithCheckForChangesThread(IDBInterface dbInterface, DatasetConfig datasetConfig, Dictionary<ConnectionConfig, Object> activConnections, bool StartedAsService)
        {
            this.StartedAsService = StartedAsService;
            this.dbInterface = dbInterface;
            this.datasetConfig = datasetConfig;
            this.activConnections = activConnections;

            this.TriggerTimeSpan = datasetConfig.TriggerTimeSpan;
        }
Beispiel #8
0
 public GetToDoObjectService(
     IDBInterface dBInterface,
     IConfiguration configuration,
     ILogger <GetToDoObjectService> logger)
 {
     _dBInterface   = dBInterface;
     _configuration = configuration;
     _logger        = logger;
 }
        public TimeTriggerWithCheckForChangesThread(IDBInterface dbInterface, DatasetConfig datasetConfig, Dictionary <ConnectionConfig, Object> activConnections, bool StartedAsService)
        {
            this.StartedAsService = StartedAsService;
            this.dbInterface      = dbInterface;
            this.datasetConfig    = datasetConfig;
            this.activConnections = activConnections;

            this.TriggerTimeSpan = datasetConfig.TriggerTimeSpan;
        }
        public DatabaseTriggerThread(IDBInterface dbInterface, DatasetConfig datasetConfig, Dictionary <ConnectionConfig, Object> activConnections, bool StartedAsService)
        {
            this.StartedAsService = StartedAsService;
            this.dbInterface      = dbInterface;
            this.datasetConfig    = datasetConfig;
            this.activConnections = activConnections;

            this.triggerConn = (DatabaseConnection)activConnections[datasetConfig.TriggerConnection];

            ak_interval = NoDataInterval;
        }
        public DatabaseTriggerThread(IDBInterface dbInterface, DatasetConfig datasetConfig, Dictionary<ConnectionConfig, Object> activConnections, bool StartedAsService)
        {
            this.StartedAsService = StartedAsService;
            this.dbInterface = dbInterface;
            this.datasetConfig = datasetConfig;
            this.activConnections = activConnections;

            this.triggerConn = (DatabaseConnection) activConnections[datasetConfig.TriggerConnection];
            
            ak_interval = NoDataInterval;
        }
Beispiel #12
0
        public void Load()
        {
            if (ID != -1)
            {
                IDBInterface db = DBInterface.CreatePointer();

                db.StoredProcedure("Visa_select_by_id");

                db.AddParameter("@inVisa", MySql.Data.MySqlClient.MySqlDbType.Int32, ID);

                db.AddOutParameter("@outIdPassport", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outName", MySql.Data.MySqlClient.MySqlDbType.String);
                db.AddOutParameter("@outVisaNumber", MySql.Data.MySqlClient.MySqlDbType.String);
                db.AddOutParameter("@outDateOn", MySql.Data.MySqlClient.MySqlDbType.DateTime);
                db.AddOutParameter("@outdateFrom", MySql.Data.MySqlClient.MySqlDbType.DateTime);
                db.AddOutParameter("@outDateUntil", MySql.Data.MySqlClient.MySqlDbType.DateTime);
                db.AddOutParameter("@outIdCountry", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outIdCountryUnion", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outIdCountryEsquire", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outTypeVisa", MySql.Data.MySqlClient.MySqlDbType.String);
                db.AddOutParameter("@outEntriesNumber", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outDaysCount", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outUsedDays", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outIssuedIn", MySql.Data.MySqlClient.MySqlDbType.String);
                db.AddOutParameter("@outIdDocument", MySql.Data.MySqlClient.MySqlDbType.Int32);
                db.AddOutParameter("@outNote", MySql.Data.MySqlClient.MySqlDbType.String);

                db.Execute();

                PassportID = db.GetOutParameterInt("@outIdPassport");
                int countryID = db.GetOutParameterInt("@outIdCountry");
                int unionID   = db.GetOutParameterInt("@outIdCountryUnion");
                CountryOfEmmitationID = db.GetOutParameterInt("@outIdCountryEsquire");
                EntriesNumber         = db.GetOutParameterInt("@outEntriesNumber");
                DaysCount             = db.GetOutParameterInt("@outDaysCount");
                DaysUsed = db.GetOutParameterInt("@outUsedDays");

                OwnerName   = db.GetOutParameterStr("@outName");
                Number      = db.GetOutParameterStr("@outVisaNumber");
                VizaType    = db.GetOutParameterStr("@outTypeVisa");
                Issued      = db.GetOutParameterStr("@outIssuedIn");
                Description = db.GetOutParameterStr("@outNote");

                DateApproved = db.GetOutParameterDateTime("@outDateOn");
                ValidFrom    = db.GetOutParameterDateTime("@outdateFrom");
                ValidTill    = db.GetOutParameterDateTime("@outDateUntil");

                SetTargetCountryOrUnion(countryID, unionID);

                Changed = false;
            }
        }
        public PLCTagTriggerThread(IDBInterface dbInterface, DatasetConfig datasetConfig, Dictionary <ConnectionConfig, Object> activConnections, bool StartedAsService)
        {
            this.StartedAsService = StartedAsService;
            this.dbInterface      = dbInterface;
            this.datasetConfig    = datasetConfig;
            this.activConnections = activConnections;

            this.triggerConn = (PLCConnection)activConnections[datasetConfig.TriggerConnection];
            this.readBit     = datasetConfig.TriggerReadBit;
            this.quittBit    = datasetConfig.TriggerQuittBit;

            ak_interval = NoDataInterval;
        }
        public PLCTagTriggerThread(IDBInterface dbInterface, DatasetConfig datasetConfig, Dictionary<ConnectionConfig, Object> activConnections, bool StartedAsService)
        {
            this.StartedAsService = StartedAsService;
            this.dbInterface = dbInterface;
            this.datasetConfig = datasetConfig;
            this.activConnections = activConnections;

            this.triggerConn = (PLCConnection) activConnections[datasetConfig.TriggerConnection];
            this.readBit = datasetConfig.TriggerReadBit;
            this.quittBit = datasetConfig.TriggerQuittBit;

            ak_interval = NoDataInterval;
        }
Beispiel #15
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="databaseDirectoryPath">Path to the directory where SMAQC.s3db should be created/updated</param>
        /// <param name="showQueryText">When true, show the text of every query at the console</param>
        public DBWrapper(string databaseDirectoryPath, bool showQueryText)
        {
            // Get path to db [needed for SQLite so we save in correct location]
            var databaseFilePath = Path.Combine(databaseDirectoryPath, "SMAQC.s3db");

            // Create db conn
            mDatabaseConnection = new DBSQLite(databaseFilePath);

            // Verify that the required columns are present

            // Attach the event handler
            mDatabaseConnection.ErrorEvent += DatabaseConnection_ErrorEvent;

            mShowQueryText = showQueryText;
        }
Beispiel #16
0
        public void Load()
        {
            IDBInterface db = DBInterface.CreatePointer();

            db.StoredProcedure("mile_card_select_by_id");

            db.AddParameter("@inIdMileCard", MySql.Data.MySqlClient.MySqlDbType.Int32, ID);

            db.AddOutParameter("@outIdMileCardStatus", MySql.Data.MySqlClient.MySqlDbType.Int32);
            db.AddOutParameter("@outNumber", MySql.Data.MySqlClient.MySqlDbType.String);
            db.AddOutParameter("@outPassword", MySql.Data.MySqlClient.MySqlDbType.String);
            db.AddOutParameter("@outMilesCount", MySql.Data.MySqlClient.MySqlDbType.Int32);
            db.AddOutParameter("@outIdAviaCompanyUnion", MySql.Data.MySqlClient.MySqlDbType.Int32);
            db.AddOutParameter("@outIdAviaCompany", MySql.Data.MySqlClient.MySqlDbType.Int32);
            db.AddOutParameter("@outIdRespondedPerson", MySql.Data.MySqlClient.MySqlDbType.Int32);
            db.AddOutParameter("@outIdOwnerPerson", MySql.Data.MySqlClient.MySqlDbType.Int32);
            db.AddOutParameter("@outNote", MySql.Data.MySqlClient.MySqlDbType.String);

            db.Execute();

            mileCardStatus.ID = db.GetOutParameterInt("@outIdMileCardStatus");
            mileCardStatus.Load();

            Silent = true;

            Number             = db.GetOutParameterStr("@outNumber");
            Password           = db.GetOutParameterStr("@outPassword");
            MilesCount         = db.GetOutParameterInt("@outMilesCount");
            AviaCompanyUnionID = db.GetOutParameterInt("@outIdAviaCompanyUnion");
            AviaCompanyID      = db.GetOutParameterInt("@outIdAviaCompany");
            PersonRespondedID  = db.GetOutParameterInt("@outIdRespondedPerson");
            Note = db.GetOutParameterStr("@outNote");

            Silent  = false;
            Changed = false;

            if (personOwner.ID != db.GetOutParameterInt("@outIdOwnerPerson"))
            {
                throw new DataException("Mile card doesnt relates to current person");
            }
        }
        public void Load()
        {
            if (ID != -1)
            {
                IDBInterface db = DBInterface.CreatePointer();

                db.StoredProcedure("Country_union_select_by_id");

                db.AddParameter("@inIdCountryUnion", MySql.Data.MySqlClient.MySqlDbType.Int32, ID);

                db.AddOutParameter("@outUnionName", MySql.Data.MySqlClient.MySqlDbType.String);
                db.AddOutParameter("@outShortUnionName", MySql.Data.MySqlClient.MySqlDbType.String);
                db.AddOutParameter("@outNote", MySql.Data.MySqlClient.MySqlDbType.String);

                db.Execute();


                Name      = db.GetOutParameterStr("@outUnionName");
                ShortName = db.GetOutParameterStr("@outShortUnionName");
                Note      = db.GetOutParameterStr("@outNote");

                Changed = false;
            }
        }
Beispiel #18
0
        private void OpenStoragesAndCreateTriggers(bool CreateTriggers, bool StartedAsService)
        {
            foreach (DatasetConfig datasetConfig in akConfig.Datasets)
            {
                try
                {
                    IDBInterface akDBInterface = null;

                    akDBInterface = StorageHelper.GetStorage(datasetConfig, RemotingServer.ClientComms.CallNotifyEvent);
                    akDBInterface.ThreadExceptionOccured += new ThreadExceptionEventHandler(tmpTrigger_ThreadExceptionOccured);

                    DatabaseInterfaces.Add(datasetConfig, akDBInterface);

                    Logging.LogText("DB Interface: " + datasetConfig.Name + " is starting...", Logging.LogLevel.Information);

                    akDBInterface.Initiate(datasetConfig);

                    if (CreateTriggers)
                    {
                        if (datasetConfig.Trigger == DatasetTriggerType.Tags_Handshake_Trigger)
                        {
                            PLCTagTriggerThread tmpTrigger = new PLCTagTriggerThread(akDBInterface, datasetConfig, ConnectionList, StartedAsService);
                            tmpTrigger.StartTrigger();
                            tmpTrigger.ThreadExceptionOccured += tmpTrigger_ThreadExceptionOccured;
                            myDisposables.Add(tmpTrigger);
                        }
                        else if (datasetConfig.Trigger == DatasetTriggerType.Time_Trigger)
                        {
                            TimeTriggerThread tmpTrigger = new TimeTriggerThread(akDBInterface, datasetConfig, ConnectionList, StartedAsService);
                            tmpTrigger.StartTrigger();
                            tmpTrigger.ThreadExceptionOccured += tmpTrigger_ThreadExceptionOccured;
                            myDisposables.Add(tmpTrigger);
                        }
                        else if (datasetConfig.Trigger == DatasetTriggerType.Time_Trigger_With_Value_Comparison)
                        {
                            TimeTriggerWithCheckForChangesThread tmpTrigger = new TimeTriggerWithCheckForChangesThread(akDBInterface, datasetConfig, ConnectionList, StartedAsService);
                            tmpTrigger.StartTrigger();
                            tmpTrigger.ThreadExceptionOccured += tmpTrigger_ThreadExceptionOccured;
                            myDisposables.Add(tmpTrigger);
                        }
                        else if (datasetConfig.Trigger == DatasetTriggerType.Quartz_Trigger)
                        {
                            QuartzTriggerThread tmpTrigger = new QuartzTriggerThread(akDBInterface, datasetConfig, ConnectionList, StartedAsService);
                            tmpTrigger.StartTrigger();
                            tmpTrigger.ThreadExceptionOccured += tmpTrigger_ThreadExceptionOccured;
                            myDisposables.Add(tmpTrigger);
                        }
                        else if (datasetConfig.Trigger == DatasetTriggerType.Triggered_By_Incoming_Data_On_A_TCPIP_Connection)
                        {
                            TCPIPConfig tcpipConnConf = datasetConfig.TriggerConnection as TCPIPConfig;

                            tcpipConnConf.MultiTelegramme = tcpipConnConf.MultiTelegramme <= 0 ? 1 : tcpipConnConf.MultiTelegramme;

                            if (tcpipConnConf.MultiTelegramme == 0)
                            {
                                tcpipConnConf.MultiTelegramme = 1;
                            }
                            TCPFunctionsAsync tmpConn = new TCPFunctionsAsync(null, tcpipConnConf.IPasIPAddress, tcpipConnConf.Port, !tcpipConnConf.PassiveConnection, tcpipConnConf.DontUseFixedTCPLength ? -1 : ReadData.GetCountOfBytesToRead(datasetConfig.DatasetConfigRows) * tcpipConnConf.MultiTelegramme);
                            tmpConn.AllowMultipleClients          = tcpipConnConf.AcceptMultipleConnections;
                            tmpConn.UseKeepAlive                  = tcpipConnConf.UseTcpKeepAlive;
                            tmpConn.AsynchronousExceptionOccured += tmpTrigger_ThreadExceptionOccured;
                            tmpConn.AutoReConnect                 = true;
                            var conf = datasetConfig;
                            tmpConn.DataRecieved += (bytes, tcpClient) =>
                            {
                                if (tcpipConnConf.MultiTelegramme == 0)
                                {
                                    tcpipConnConf.MultiTelegramme = 1;
                                }
                                for (int j = 1; j <= tcpipConnConf.MultiTelegramme; j++)
                                {
                                    var    ln     = bytes.Length / tcpipConnConf.MultiTelegramme;
                                    byte[] tmpArr = new byte[ln];
                                    Array.Copy(bytes, ((j - 1) * ln), tmpArr, 0, ln);

                                    IEnumerable <object> values = ReadData.ReadDataFromByteBuffer(conf, conf.DatasetConfigRows, tmpArr, StartedAsService);
                                    if (values != null)
                                    {
                                        akDBInterface.Write(values);
                                    }
                                }
                            };
                            tmpConn.ConnectionEstablished += (TcpClient tcp) =>
                            {
                                Logging.LogText("Connection established: " + tcpipConnConf.IPasIPAddress + ", " + tcpipConnConf.Port, Logging.LogLevel.Information);
                            };
                            tmpConn.ConnectionClosed += (TcpClient tcp) =>
                            {
                                Logging.LogText("Connection closed: " + tcpipConnConf.IPasIPAddress + ", " + tcpipConnConf.Port, Logging.LogLevel.Information);
                            };
                            Logging.LogText("Connection prepared: " + tcpipConnConf.IPasIPAddress + ", " + tcpipConnConf.Port, Logging.LogLevel.Information);
                            tmpConn.Start();
                            ConnectionList.Add(tcpipConnConf, tmpConn);
                            myDisposables.Add(tmpConn);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logging.LogText("Error in OpenStorragesAndCreateTriggers occured!", ex, Logging.LogLevel.Error);
                }
            }
        }
Beispiel #19
0
        private void cmbStorage_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            lblError.Content = null;
            if (dbIf != null)
            {
                dbIf.Dispose();
            }
            dbIf   = null;
            dbView = null;

            lblDataCount.Content         = null;
            grdDatasetFields.ItemsSource = null;

            datasetConfig = cmbStorage.SelectedItem as DatasetConfig;
            dbIf          = StorageHelper.GetStorage(datasetConfig, null);
            dbIf.Connect_To_Database(datasetConfig.Storage);
            dbView    = dbIf as IDBViewable;
            dbViewSQL = dbIf as IDBViewableSQL;

            txtSQL.IsEnabled    = false;
            cmdSQL.IsEnabled    = false;
            txtSearch.IsEnabled = false;
            cmdSearch.IsEnabled = false;

            try
            {
                if (dbView != null)
                {
                    txtSQL.Text   = "";
                    CurrentNumber = 0;
                    DataTable tbl = dbView.ReadData(datasetConfig, null, CurrentNumber, 1000, null, null);
                    if (tbl != null)
                    {
                        grdDatasetFields.ItemsSource = tbl.DefaultView;
                    }
                    lblDataCount.Content = dbView.ReadCount(datasetConfig);
                }

                if (!string.IsNullOrEmpty(datasetConfig.DateTimeDatabaseField))
                {
                    /*dbFieldNames = datasetConfig.DateTimeDatabaseField;
                     * foreach (var datasetConfigRow in datasetConfig.DatasetConfigRows)
                     * {
                     *  if (datasetConfigRow.DatabaseField.ToLower().Trim() != datasetConfig.DateTimeDatabaseField.ToLower().Trim())
                     *      dbFieldNames += ", " + datasetConfigRow.DatabaseField;
                     * }*/
                    dbFieldNames = datasetConfig.DateTimeDatabaseField + ",*";
                }

                if (dbViewSQL != null)
                {
                    txtSQL.Text         = "SELECT " + dbFieldNames + " FROM " + datasetConfig.Name + " ORDER BY id DESC LIMIT " + 1000.ToString();
                    txtSQL.IsEnabled    = true;
                    cmdSQL.IsEnabled    = true;
                    txtSearch.IsEnabled = true;
                    cmdSearch.IsEnabled = true;
                }
            }
            catch (Exception ex)
            {
                lblError.Content = ex.Message;
            }
        }