Esempio n. 1
0
        //wyciąga nazwę db z kwerendy wpisanej przez użytkownika
        private string extractTableName()
        {
            string          tableName = "";
            TextManipulator tm        = new TextManipulator();
            //znajduję położenie wyrazu kluczowego "from" w kwerendzie
            List <int> keyWordFromPosition = tm.getSubstringStartPositions(sqlQuery, "from");

            try
            {
                //wywala bład gdy kwerenda jest na tyle bezsensowna, że nie potrafi wyłuskać sensownego wyrazu, który mógłby być nazwą bazy danych
                string textAfterFrom      = sqlQuery.Substring(keyWordFromPosition[0] + 5); //dodaję długość wyrazu from i jedną spację
                int    firstSpacePosition = textAfterFrom.IndexOf(" ");
                if (firstSpacePosition == -1)                                               //brak spacji
                {
                    tableName = textAfterFrom;
                }
                else
                {
                    tableName = textAfterFrom.Substring(0, firstSpacePosition);
                }
            }
            catch (System.ArgumentOutOfRangeException e)
            {
                MyMessageBox.display("Błąd w kwerendzie", MessageBoxType.Error);
                tableName = "";
            }
            return(restoreCase(tableName));  //powracam do oryginalnej pisowni, bo ma to znaczenie gdy collation bazy jest ustawiony na case-sensitive
        }
Esempio n. 2
0
        //z pliku tekstowego wyciąga połączenie do serwera na podstawie znacznika "delimiter"
        private string readStringFromFile(string delimiter)
        {
            TextManipulator tm               = new TextManipulator();
            List <int>      indexes          = tm.getSubstringStartPositions(configFileText, delimiter);
            int             startIndex       = indexes[0] + delimiter.Length + 1; //kompensuję na > po znaczniku
            int             connStringLength = indexes[1] - startIndex - 2;       //kompensuję na </ przed znacznikiem

            return(configFileText.Substring(startIndex, connStringLength));
        }
Esempio n. 3
0
        public bool validateConfigFile()
        {
            string currentPath = Application.StartupPath;       //katalog z którego uruchamiany jest program

            if (ProgramSettings.configFilePath.Equals(""))      //nie zdefiniowano alternatywnej ścieżki dla pliku konfiguracyjnego
            {
                configFilePath = currentPath;                   //plik konfiguracyjny jest w tym samym katalogu co program
            }
            else
            {
                configFilePath = ProgramSettings.configFilePath;
            }

            FileManipulator fm         = new FileManipulator();
            string          configFile = configFilePath + @"\" + ProgramSettings.configFileName;

            configFileText = fm.readFile(configFile);
            if (!configFileText.Equals(""))                     //plik konfiguracyjny istnieje i nie jest pusty
            {
                TextManipulator tm      = new TextManipulator();
                List <int>      indexes = tm.getSubstringStartPositions(configFileText, ProgramSettings.connectionStringDelimiter);

                //jeżeli w pliku jest błąd i jest za dużo lub za mało znaczników
                if (indexes.Count != 2)
                {
                    MyMessageBox.display("błąd pliku konfiguracyjnego " + configFile + " dla znacznika " + ProgramSettings.connectionStringDelimiter, MessageBoxType.Error);
                    configFileValidated = false;
                }
            }
            else
            {
                configFileValidated = false;       //plik jest pusty lub go nie ma
            }
            configFileValidationWasDone = true;
            return(configFileValidated);             //domyślnie jest true
        }