Ejemplo n.º 1
0
        // +CreateSymbolByName(SymbolName : string = "UNKNOWN", AcceptDuplicates : boolean = 0, ResultedSymbol : List<int[2]>)
        public List<SObject> CreateSymbolByName(string SymbolName, bool AcceptDuplicates)
        {
            if (!AcceptDuplicates)
            {
                List<SObject> ExistentSymbols = GetSymbolsByName(SymbolName, 0, 10);
                if (ExistentSymbols.Count > 0) return ExistentSymbols;
            }
            List<SObject> ResultedSymbols = new List<SObject>();
            int[] symbolPosition = { 0, 0, 0, 0 };
            try
            {
                //DEFAULT und NULL sind nicht als explizite Identitätswerte zulässig
                string commandString = "INSERT INTO [simbs] ([En]) OUTPUT INSERTED.ID VALUES ('" + SymbolName + "') ";
                SqlCommand mySqlCommand = new SqlCommand(commandString, SqlServerConnection);
                SqlDataReader myReader = mySqlCommand.ExecuteReader();
                int LastInsertedId = 0;
                //if (MySqlTrace) SQLView.Log(mySqlCommand.CommandText);
                while (myReader.Read())
                {
                    if (myReader.GetInt32(0) > -1)
                    {
                        SObject symbolID = new SObject();
                        LastInsertedId = myReader.GetInt32(0);
                        symbolID.ObjectId = LastInsertedId;
                        if (symbolID.ObjectId != 0 || symbolID.ObjectId != 0)
                        {
                            ResultedSymbols.Add(symbolID);
                        }
                    }
                }
                myReader.Close();
                //if (SqlTrace) SQLView.Log(mySqlCommand.CommandText);
                if (LastInsertedId > 0)
                {
                    string commandString2 = "UPDATE [simbs] SET [IR] = [ID] WHERE [ID] = " + LastInsertedId + " ;";
                    SqlCommand mySqlCommand2 = new SqlCommand(commandString2, SqlServerConnection);
                    mySqlCommand2.ExecuteNonQuery();
                    symbolPosition[0] = LastInsertedId;
                    //ResultedSymbols.Add(symbolPosition);
                }
            }
            catch (SqlException retrieveSymbolIndexException)
            {
                Console.WriteLine("Error: {0}", retrieveSymbolIndexException.ToString());
            }

            CreateSymbolTable(symbolPosition);
            //if (MyResultsTrace) SQLView.LogResult(symbolPosition);
            return ResultedSymbols;
        }
Ejemplo n.º 2
0
        //public List<string> GetSymbolNamesByID(int[] SymbolID, int Mode = 0, int LimitOfResults = 10);
        //GetSymbolNamesByID = ServerAccessInterface.GetSymbolNamesByID;
        #endregion Adapter

        #region Interface Helpers
        #region create symbol table

        /// <summary>
        /// Create a nonexistent table and rezerve first line with id 1
        /// </summary>
        /// <param name="symbolPosition">position of table reference in simbols table can be used to decode the table  name</param>
        private void CreateSymbolTable(SObject symbolPosition)
        {
            string commandString = "CREATE TABLE IF NOT EXISTS `" + DB + "`.`s" + symbolPosition.ObjectId.ToString("00000000") + "` ( `ID` INT NOT NULL AUTO_INCREMENT , `a` INT NULL , `b` INT NULL , `c` INT NULL , `d` INT NULL , `e` INT NULL , `f` INT NULL , `g` INT NULL , `h` INT NULL , PRIMARY KEY (`ID`) );";
            MySql.Data.MySqlClient.MySqlCommand mySqlCommand = new MySqlCommand(commandString, mySQLConnection);
            mySqlCommand.ExecuteNonQuery();
            //if (MySqlTrace) SQLView.Log(mySqlCommand.CommandText);
            commandString = "INSERT INTO `" + DB + "`.`s" + symbolPosition.ObjectId.ToString("00000000") + "` (`a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`) VALUES (0,0,0,0,0,0,0,0) ;";
            mySqlCommand = new MySqlCommand(commandString, mySQLConnection);
            mySqlCommand.ExecuteNonQuery();
            //if (MySqlTrace) SQLView.Log(mySqlCommand.CommandText);
        }
Ejemplo n.º 3
0
 // +GetSymbolsByName(SymbolsNamePart : string = "", Method : int = 0, LimitOfResults : int = 10, ResultedSymbols : List<int[2]>)
 public List<SObject> GetSymbolsByName(string SymbolNamePart, int Mode, int LimitOfResults = 10)
 {
     List<SObject> ResultedSymbols = new List<SObject>();
     try
     {
         string commandString;
         switch (Mode)
         {
             case 0: // strict
                 commandString = "SELECT [IR] FROM [simbs] WHERE [En] LIKE '" + SymbolNamePart + "' ";
                 break;
             case 1: // starting with
                 commandString = "SELECT [IR] FROM [simbs] WHERE [En] LIKE '" + SymbolNamePart + "%' ";
                 break;
             case 2: // containing
                 commandString = "SELECT [IR] FROM [simbs] WHERE [En] LIKE '%" + SymbolNamePart + "%' ";
                 break;
             case 3: // ending with
                 commandString = "SELECT [IR] FROM [simbs] WHERE [En] LIKE '%" + SymbolNamePart + "' ";
                 break;
             default:
                 commandString = "SELECT [IR] FROM [simbs] WHERE [En] LIKE '" + SymbolNamePart + "' ";
                 break;
         }
         //if (LimitOfResults != 0) { commandString += " Limit " + LimitOfResults + " "; }
         SqlCommand mySqlCommand = new SqlCommand(commandString, SqlServerConnection);
         SqlDataReader myReader = mySqlCommand.ExecuteReader();
         //if (MySqlTrace) SQLView.Log(mySqlCommand.CommandText);
         while (myReader.Read())
         {
             if (myReader.GetInt32(0) > -1)
             {
                 SObject symbolID = new SObject();
                 symbolID.ObjectId = myReader.GetInt32(0);
                 if (symbolID.ObjectId != 0 || symbolID.ObjectId != 0)
                 {
                     ResultedSymbols.Add(symbolID);
                 }
             }
         }
         myReader.Close();
     }
     catch (SqlException retrieveSymbolIndexException)
     {
         Console.WriteLine("Error: {0}", retrieveSymbolIndexException.ToString());
     }
     if (MyResultsTrace)
     {
         string ResultLog = "";
         foreach (SObject i in ResultedSymbols)
         {
             ResultLog += " [" + i.ObjectId + ":" + "0" + "]";
         }
         //SQLView.LogResult(new string[] { ResultLog });
     }
     if (ResultedSymbols.Count < 1 && Mode == 0 && AcceptSymbols)
     {
         List<SObject> CreatedSymbols = new List<SObject>();
         CreatedSymbols = CreateSymbolByName(SymbolNamePart, true); 
         return CreatedSymbols;
     }
     return ResultedSymbols;
 }
Ejemplo n.º 4
0
 // +GetSymbolsByName(SymbolsNamePart : string = "", Method : int = 0, LimitOfResults : int = 10, ResultedSymbols : List<int[2]>)
 public List<SObject> GetSymbolsByName(string SymbolNamePart, int Mode, int LimitOfResults = 10)
 {
     List<SObject> ResultedSymbols = new List<SObject>();
     try
     {
         string commandString;
         switch (Mode)
         {
             case 0: // strict
                 commandString = "SELECT `IR` FROM `" + DB + "`.`simbs` WHERE `En` LIKE '" + SymbolNamePart + "' ";
                 break;
             case 1: // starting with
                 commandString = "SELECT `IR` FROM `" + DB + "`.`simbs` WHERE `En` LIKE '" + SymbolNamePart + "%' ";
                 break;
             case 2: // containing
                 commandString = "SELECT `IR` FROM `" + DB + "`.`simbs` WHERE `En` LIKE '%" + SymbolNamePart + "%' ";
                 break;
             case 3: // ending with
                 commandString = "SELECT `IR` FROM `" + DB + "`.`simbs` WHERE `En` LIKE '%" + SymbolNamePart + "' ";
                 break;
             default:
                 commandString = "SELECT `IR` FROM `" + DB + "`.`simbs` WHERE `En` LIKE '" + SymbolNamePart + "' ";
                 break;
         }
         if (LimitOfResults != 0) { commandString += " Limit " + LimitOfResults + " "; }
         MySql.Data.MySqlClient.MySqlCommand mySqlCommand = new MySqlCommand(commandString, mySQLConnection);
         MySqlDataReader myReader = mySqlCommand.ExecuteReader();
         //if (MySqlTrace) SQLView.Log(mySqlCommand.CommandText);
         while (myReader.Read())
         {
             if (!string.IsNullOrEmpty(myReader.GetString(0))) //TO DO null value
             {
                 SObject symbolID = new SObject();
                 int temporarId = -1;
                 int.TryParse(myReader.GetString(0), out temporarId);
                 symbolID.ObjectId = temporarId;
                 if (symbolID.ObjectId != 0 || symbolID.ObjectId != 0)
                 {
                     ResultedSymbols.Add(symbolID);
                 }
             }
         }
         myReader.Close();
     }
     catch (MySqlException retrieveSymbolIndexException)
     {
         Console.WriteLine("Error: {0}", retrieveSymbolIndexException.ToString());
     }
     if (MyResultsTrace)
     {
         string ResultLog = "";
         foreach (SObject i in ResultedSymbols)
         {
             ResultLog += " [" + i.ObjectId + ":" + "0" + "]";
         }
         //SQLView.LogResult(new string[] { ResultLog });
     }
     if (ResultedSymbols.Count < 1 && Mode == 0 && AcceptSymbols)
     {
         List<SObject> CreatedSymbols = new List<SObject>();
         CreatedSymbols = CreateSymbolByName(SymbolNamePart, true); // set AcceptDuplicates to avoid other check for existence
         return CreatedSymbols;
     }
     return ResultedSymbols;
 }
Ejemplo n.º 5
0
        // +CreateSymbolByName(SymbolName : string = "UNKNOWN", AcceptDuplicates : boolean = 0, ResultedSymbol : List<int[2]>)
        public List<SObject> CreateSymbolByName(string SymbolName, bool AcceptDuplicates)
        {
            if (! AcceptDuplicates)
            {
                List<SObject> ExistentSymbols = GetSymbolsByName(SymbolName, 0, 10);
                if (ExistentSymbols.Count > 0) return ExistentSymbols;
            }
            List<SObject> ResultedSymbols = new List<SObject>();
            SObject symbolPosition = new SObject();
            try
            {
                string commandString = "INSERT INTO `" + DB + "`.`simbs` (`ID`, `En`) VALUES (NULL, '" + SymbolName + "');";
                MySql.Data.MySqlClient.MySqlCommand mySqlCommand = new MySqlCommand(commandString, mySQLConnection);
                mySqlCommand.ExecuteNonQuery();
                //if (MySqlTrace) SQLView.Log(mySqlCommand.CommandText);
                if (mySqlCommand.LastInsertedId > 0)
                {
                    string commandString2 = "UPDATE `" + DB + "`.`simbs` SET `IR` = `ID` WHERE `ID` = " + (int)mySqlCommand.LastInsertedId + " ;";
                    MySql.Data.MySqlClient.MySqlCommand mySqlCommand2 = new MySqlCommand(commandString2, mySQLConnection);
                    mySqlCommand2.ExecuteNonQuery();
                    symbolPosition.ObjectId = (int)mySqlCommand.LastInsertedId;
                    ResultedSymbols.Add(symbolPosition);
                }
            }
            catch (MySqlException retrieveSymbolIndexException)
            {
                Console.WriteLine("Error: {0}", retrieveSymbolIndexException.ToString());
            }

            CreateSymbolTable(symbolPosition);
            //if (MyResultsTrace) SQLView.LogResult(symbolPosition);
            return ResultedSymbols;
        }
Ejemplo n.º 6
0
        // +CreateSymbolByName(SymbolName : string = "UNKNOWN", AcceptDuplicates : boolean = 0, ResultedSymbol : List<int[2]>)
        public List<SObject> CreateSymbolByName(string SymbolName, bool AcceptDuplicates)
        {
            //=== CUSTOM LOGGER===================================================================================
           //if (LoggingSystem.LoggingSystem.TraceCode)
            {
                System.Diagnostics.StackTrace stackTrace; System.Diagnostics.StackFrame fr; stackTrace = new System.Diagnostics.StackTrace(); fr = stackTrace.GetFrame(0);
                //LoggingSystem.LoggingSystem.LogMessage = "<div class='CodeElementNamespace'>  " + this.GetType().Namespace + " <span class='CodeElementClass'> " + this.GetType().Name + " </span>&gt; " + stackTrace.GetFrame(0).GetMethod().ToString().Replace(stackTrace.GetFrame(0).GetMethod().Name, "<span class='CodeElementMethod'>" + stackTrace.GetFrame(0).GetMethod().Name + "</span>");
                //LoggingSystem.LoggingSystem.LogMessage = "<span class='specialChaer'>(" + "<span class='CodeElementParameter'>string</span> " + "<span class='CodeElementValue'>" + SymbolName + "</span>" + ", <span class='CodeElementParameter'>bool</span> " + "<span class='CodeElementValue'>" + AcceptDuplicates + "</span>)</span></div>";
            }
            //====================================================================================================

            if (!AcceptDuplicates)
            {
                List<SObject> ExistentSymbols = GetSymbolsByName(SymbolName, 0, 10);
                if (ExistentSymbols.Count > 0) return ExistentSymbols;
            }
            List<SObject> ResultedSymbols = new List<SObject>();
            SObject symbolPosition = new SObject();
            try
            {
                string commandString = "INSERT INTO " + OracleDB + ".SIMBS (ID, EN) VALUES (NULL, '" + SymbolName + "') RETURNING SIMBS.ID INTO :LastID ";
                OracleCommand OracleCommand = new OracleCommand(commandString, OracleConnection);
                OracleParameter LastId = new OracleParameter("LastID", OracleDbType.Decimal, ParameterDirection.ReturnValue);
                OracleCommand.Parameters.Add(LastId);
                //if (MySqlTrace) SQLView.Log(mySqlCommand.CommandText);
                OracleDataReader myReader = OracleCommand.ExecuteReader();
                int LastInsertedId = 0;
                int.TryParse(LastId.Value.ToString(), out LastInsertedId);
                if (LastInsertedId > 0)
                {
                    string commandString2 = "UPDATE " + OracleDB + ".SIMBS SET IR = ID WHERE ID = " + LastInsertedId + " ";
                    OracleCommand mySqlCommand2 = new OracleCommand(commandString2, OracleConnection);
                    mySqlCommand2.ExecuteNonQuery();
                    symbolPosition.ObjectId = LastInsertedId;
                    ResultedSymbols.Add(symbolPosition);
                }
                ////if (OracleTrace) SQLView.Log(OracleCommand.CommandText);
            }
            catch (OracleException retrieveSymbolIndexException)
            {
                Console.WriteLine("Error: {0}", retrieveSymbolIndexException.ToString());
            }

            CreateSymbolTable(symbolPosition);
            //if (MyResultsTrace)//SQLView.LogResult(symbolPosition);
            return ResultedSymbols;
        }
Ejemplo n.º 7
0
        // +GetSymbolsByName(SymbolsNamePart : string = "", Method : int = 0, LimitOfResults : int = 10, ResultedSymbols : List<int[2]>)
        public List<SObject> GetSymbolsByName(string SymbolNamePart, int Mode, int LimitOfResults = 10)
        {
            List<SObject> ResultedSymbols = new List<SObject>();
            try
            {
                string commandString;
                switch (Mode)
                {
                    case 0: // strict
                        commandString = "SELECT IR FROM " + OracleDB + ".SIMBS WHERE EN LIKE '" + SymbolNamePart + "' ";
                        break;
                    case 1: // starting with
                        commandString = "SELECT IR FROM " + OracleDB + ".SIMBS WHERE EN LIKE '" + SymbolNamePart + "%' ";
                        break;
                    case 2: // containing
                        commandString = "SELECT IR FROM " + OracleDB + ".SIMBS WHERE EN LIKE '%" + SymbolNamePart + "%' ";
                        break;
                    case 3: // ending with
                        commandString = "SELECT IR FROM " + OracleDB + ".SIMBS WHERE EN LIKE '%" + SymbolNamePart + "' ";
                        break;
                    default:
                        commandString = "SELECT IR FROM " + OracleDB + ".SIMBS WHERE EN LIKE '" + SymbolNamePart + "' ";
                        break;
                }
                //if (LimitOfResults != 0) { commandString += " Limit " + LimitOfResults + " "; }
                OracleCommand OracleCommand = new OracleCommand(commandString, OracleConnection);
                OracleDataReader myReader = OracleCommand.ExecuteReader();
                ////if (OracleTrace) SQLView.Log(OracleCommand.CommandText);
                while (myReader.Read())
                {
                    if (!myReader.IsDBNull(0))
                    {
                        SObject symbolID = new SObject();
                        //int.TryParse(myReader.GetString(0), out symbolID[0]);
                        symbolID.ObjectId = (int)myReader.GetDecimal(0);
                        if (symbolID.ObjectId != 0 || symbolID.ObjectId != 0)
                        {
                            ResultedSymbols.Add(symbolID);
                        }
                    }
                }
                myReader.Close();
            }
            catch (OracleException retrieveSymbolIndexException)
            {
                Console.WriteLine("Error: {0}", retrieveSymbolIndexException.ToString());
            }
            if (MyResultsTrace)
            {
                string ResultLog = "";
                foreach (SObject i in ResultedSymbols)
                {
                    ResultLog += " [" + i.ObjectId + ":" + "0" + "]";
                }
                //SQLView.LogResult(new string[] { ResultLog });
            }
            if (ResultedSymbols.Count < 1 && Mode == 0 && AcceptSymbols)
            {
                List<SObject> CreatedSymbols = new List<SObject>();
                //CreatedSymbols = CreateSymbolByName(SymbolNamePart, true); 
                ResultedSymbols = CreatedSymbols;
            }

            // Name symbols
            foreach (SObject symbol in ResultedSymbols)
            {
                symbol.ObjectName = GetSymbolNamesByID(symbol.ObjectId);
            }

            #region LOG
            //=== CUSTOM LOGGER===================================================================================
            ObjectModel.CodeExplorer.CodeElementMethod thisMethod = new ObjectModel.CodeExplorer.CodeElementMethod();
            int logLevel = logingOptions.levelNumbers;
            if (logLevel >= 3) // code
            {
                System.Diagnostics.StackTrace stackTrace; System.Diagnostics.StackFrame fr; stackTrace = new System.Diagnostics.StackTrace(); fr = stackTrace.GetFrame(0);
                thisMethod.ElementNamespaceName = this.GetType().Namespace;
                thisMethod.ElementClassName = this.GetType().Name;
                thisMethod.ElementName = stackTrace.GetFrame(0).GetMethod().ToString().Replace(stackTrace.GetFrame(0).GetMethod().Name.ToString(), "<span style='color: red'>" + stackTrace.GetFrame(0).GetMethod().Name.ToString()+"</span>");
            }
            if (logLevel >= 2) // parameters
            {
                thisMethod.Parameters.Add(new string[] { "SymbolNamePart", SymbolNamePart.ToString() });
                thisMethod.Parameters.Add(new string[] { "Mode", Mode.ToString() });
                thisMethod.Parameters.Add(new string[] { "LimitOfResults", LimitOfResults.ToString() });
            }
            if (logLevel >= 1) // results
            {
                string result = string.Empty;
                foreach (SObject id in ResultedSymbols)
                {
                    result += "[" + id.ToString() + "]";
                }
                thisMethod.Result = result;
            }
            //LoggingSystem.LoggingSystem.LogMethod = thisMethod;

            //====================================================================================================
            #endregion LOG

            return ResultedSymbols;
        }
Ejemplo n.º 8
0
        //public List<string> GetSymbolNamesByID(int[] SymbolID, int Mode = 0, int LimitOfResults = 10);
        //GetSymbolNamesByID = ServerAccessInterface.GetSymbolNamesByID;
        #endregion Adapter

        #region Interface Helpers
        #region create symbol table

        /// <summary>
        /// Create a nonexistent table and rezerve first line with id 1
        /// </summary>
        /// <param name="symbolPosition">position of table reference in simbols table can be used to decode the table  name</param>
        private void CreateSymbolTable(SObject symbolPosition)
        {
            //=== CUSTOM LOGGER===================================================================================
           //if (LoggingSystem.LoggingSystem.TraceCode)
            {
                System.Diagnostics.StackTrace stackTrace; System.Diagnostics.StackFrame fr; string myLog; System.IO.StreamWriter log; stackTrace = new System.Diagnostics.StackTrace(); fr = stackTrace.GetFrame(0);
                //LoggingSystem.LoggingSystem.LogMessage = "<div>  " + this.GetType().Namespace + " <span style='color:green'> " + this.GetType().Name + " </span>&gt; " + stackTrace.GetFrame(0).GetMethod().ToString().Replace(stackTrace.GetFrame(0).GetMethod().Name, "<span style='color:blue'>" + stackTrace.GetFrame(0).GetMethod().Name + "</span>") + "</div>";
            }
            //====================================================================================================

            string commandString = " CREATE TABLE \"" + OracleDB + "\".\"S" + symbolPosition.ObjectId.ToString("00000000") + "\" (	\"ID\" NUMBER, 	\"A\" NUMBER, 	\"B\" NUMBER, 	\"C\" NUMBER, 	\"D\" NUMBER, 	\"E\" NUMBER, 	\"F\" NUMBER, 	\"G\" NUMBER, 	\"H\" NUMBER   ) ";
            OracleCommand OracleCommand = new OracleCommand(commandString, OracleConnection);
            OracleCommand.ExecuteNonQuery();

            commandString = " CREATE SEQUENCE  \"" + OracleDB + "\".\"S" + symbolPosition.ObjectId.ToString("00000000") + "_SEQ_ID\"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 161 CACHE 20 NOORDER  NOCYCLE  ";
            OracleCommand OracleCommandSEQ = new OracleCommand(commandString, OracleConnection);
            OracleCommandSEQ.ExecuteNonQuery();

            commandString = " create or replace TRIGGER S" + symbolPosition.ObjectId.ToString("00000000") + "_AUTOINCREMENT ";
            commandString += " BEFORE INSERT ON S" + symbolPosition.ObjectId.ToString("00000000") + " ";
            commandString += " REFERENCING OLD AS OLD NEW AS NEW  ";
            commandString += " FOR EACH ROW  ";
            commandString += " WHEN (NEW.ID IS NULL)  ";
            commandString += " BEGIN ";
            commandString += "   select S" + symbolPosition.ObjectId.ToString("00000000") + "_SEQ_ID.NEXTVAL ";
            commandString += "   INTO :NEW.ID FROM dual; ";
            commandString += " END ; ";
            OracleCommand OracleCommandTRG = new OracleCommand(commandString, OracleConnection);
            OracleCommandTRG.ExecuteNonQuery();
            
            //if (OracleTrace) SQLView.Log(OracleCommand.CommandText);
            commandString = "INSERT INTO \"" + OracleDB + "\".\"S" + symbolPosition.ObjectId.ToString("00000000") + "\" (\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\") VALUES (0,0,0,0,0,0,0,0) ";
            OracleCommand = new OracleCommand(commandString, OracleConnection);
            OracleCommand.ExecuteNonQuery();
            //if (OracleTrace) SQLView.Log(OracleCommand.CommandText);
        }
Ejemplo n.º 9
0
        // +GetSymbolsByName(SymbolsNamePart : string = "", Method : int = 0, LimitOfResults : int = 10, ResultedSymbols : List<int[2]>)
        public List<SObject> GetSymbolsByName(string SymbolNamePart, int Mode, int LimitOfResults = 10)
        {
            List<SObject> ResultedSymbols = new List<SObject>();
            try
            {
                string commandString;
                switch (Mode)
                {
                    case 0: // strict
                        commandString = "SELECT \"IR\" FROM \"SIMBS\" WHERE \"EN\" LIKE '" + SymbolNamePart + "' ";
                        break;
                    case 1: // starting with
                        commandString = "SELECT \"IR\" FROM \"SIMBS\" WHERE \"EN\" LIKE '" + SymbolNamePart + "%' ";
                        break;
                    case 2: // containing
                        commandString = "SELECT \"IR\" FROM \"SIMBS\" WHERE \"EN\" LIKE '%" + SymbolNamePart + "%' ";
                        break;
                    case 3: // ending with
                        commandString = "SELECT \"IR\" FROM \"SIMBS\" WHERE \"EN\" LIKE '%" + SymbolNamePart + "' ";
                        break;
                    default:
                        commandString = "SELECT \"IR\" FROM \"SIMBS\" WHERE \"EN\" LIKE '" + SymbolNamePart + "' ";
                        break;
                }
                //if (LimitOfResults != 0) { commandString += " Limit " + LimitOfResults + " "; }
                NpgsqlCommand OracleCommand = new NpgsqlCommand(commandString, NpgsqlConnection);
                NpgsqlDataReader myReader = OracleCommand.ExecuteReader();
                //if (OracleTrace) SQLView.Log(OracleCommand.CommandText);
                while (myReader.Read())
                {
                    if (!myReader.IsDBNull(0))
                    {
                        SObject symbolID = new SObject();
                        //int.TryParse(myReader.GetString(0), out symbolID[0]);
                        symbolID.ObjectId = (int)myReader.GetDecimal(0);
                        if (symbolID.ObjectId != 0 || symbolID.ObjectId != 0)
                        {
                            ResultedSymbols.Add(symbolID);
                        }
                    }
                }
                myReader.Close();
            }
            catch (NpgsqlException retrieveSymbolIndexException)
            {
                Console.WriteLine("Error: {0}", retrieveSymbolIndexException.ToString());
            }

            if (MyResultsTrace)
            {
                string ResultLog = "";
                foreach (SObject i in ResultedSymbols)
                {
                    ResultLog += " [" + i.ObjectId + ":" + "0" + "]";
                }
                //SQLView.LogResult(new string[] { ResultLog });
            }
            if (ResultedSymbols.Count < 1 && Mode == 0 && AcceptSymbols)
            {
                List<SObject> CreatedSymbols = new List<SObject>();
                CreatedSymbols = CreateSymbolByName(SymbolNamePart, true);
                return CreatedSymbols;
            }
            return ResultedSymbols;
        }
Ejemplo n.º 10
0
        //public List<string> GetSymbolNamesByID(int[] SymbolID, int Mode = 0, int LimitOfResults = 10);
        //GetSymbolNamesByID = ServerAccessInterface.GetSymbolNamesByID;
        #endregion Adapter

        #region Interface Helpers
        #region create symbol table

        /// <summary>
        /// Create a nonexistent table and rezerve first line with id 1
        /// </summary>
        /// <param name="symbolPosition">position of table reference in simbols table can be used to decode the table  name</param>
        private void CreateSymbolTable(SObject symbolPosition)
        {
            string commandString = "CREATE TABLE IF NOT EXISTS `" + DB + "`.`s" + symbolPosition.ObjectId.ToString("00000000") + "` ( `ID` INT , `a` INT NULL , `b` INT NULL , `c` INT NULL , `d` INT NULL , `e` INT NULL , `f` INT NULL , `g` INT NULL , `h` INT NULL , PRIMARY KEY (`ID`) );";
            SQLiteCommand SqLiteCommand = new SQLiteCommand(commandString, SqLiteConnection);
            SqLiteCommand.ExecuteNonQuery();
            //if (SqLiteTrace) SQLView.Log(SqLiteCommand.CommandText);
            commandString = "INSERT INTO `" + DB + "`.`s" + symbolPosition.ObjectId.ToString("00000000") + "` (`a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`) VALUES (0,0,0,0,0,0,0,0) ;";
            SqLiteCommand = new SQLiteCommand(commandString, SqLiteConnection);
            SqLiteCommand.ExecuteNonQuery();
            //if (SqLiteTrace) SQLView.Log(SqLiteCommand.CommandText);
        }