예제 #1
1
파일: SQL.cs 프로젝트: rolaleks/Coins
        public void ExecuteNonQuery(String query)
        {
            error = 0;
                if (fb.State == ConnectionState.Closed)
                    fb.Open();

                FbDatabaseInfo fb_inf = new FbDatabaseInfo(fb); //информация о БД

                //пока у объекта БД не был вызван метод Open() - никакой информации о БД не получить, будет только ошибка
               // MessageBox.Show("Info: " + fb_inf.ServerClass + "; " + fb_inf.ServerVersion); //выводим тип и версию используемого сервера Firebird

                FbCommand InsertSQL = new FbCommand(query, fb);//"INSERT INTO COINS (NAME,NUMBER,CAT,IMAGE_JPG,IMAGE_CDR) VALUES('" + textBox1.Text + "')", fb);

                if (fb.State == ConnectionState.Closed) //если соединение закрыто - откроем его; Перечисление ConnectionState содержит состояния соединения (подключено/отключено)
                    fb.Open();

                FbTransaction fbt = fb.BeginTransaction(); //стартуем транзакцию; стартовать транзакцию можно только для открытой базы (т.е. мутод Open() уже был вызван ранее, иначе ошибка)
                InsertSQL.Transaction = fbt; //необходимо проинициализить транзакцию для объекта InsertSQL
                try
                {
                    int res = InsertSQL.ExecuteNonQuery(); //для запросов, не возвращающих набор данных (insert, update, delete) надо вызывать этот метод
                    //MessageBox.Show("SUCCESS: " + res.ToString());
                    fbt.Commit(); //если вставка прошла успешно - комитим транзакцию
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message); error = 1;
                }

                InsertSQL.Dispose(); //в документации написано, что ОЧЕНЬ рекомендуется убивать объекты этого типа, если они больше не нужны
                fb.Close();
        }
		public void DatabaseInfoTest()
		{
			FbDatabaseInfo dbInfo = new FbDatabaseInfo(Connection);

			Console.WriteLine("Server Version: {0}", dbInfo.ServerVersion);
			Console.WriteLine("ISC Version : {0}", dbInfo.IscVersion);
			Console.WriteLine("Server Class : {0}", dbInfo.ServerClass);
			Console.WriteLine("Max memory : {0}", dbInfo.MaxMemory);
			Console.WriteLine("Current memory : {0}", dbInfo.CurrentMemory);
			Console.WriteLine("Page size : {0}", dbInfo.PageSize);
			Console.WriteLine("ODS Mayor version : {0}", dbInfo.OdsVersion);
			Console.WriteLine("ODS Minor version : {0}", dbInfo.OdsMinorVersion);
			Console.WriteLine("Allocation pages: {0}", dbInfo.AllocationPages);
			Console.WriteLine("Base level: {0}", dbInfo.BaseLevel);
			Console.WriteLine("Database id: {0}", dbInfo.DbId);
			Console.WriteLine("Database implementation: {0}", dbInfo.Implementation);
			Console.WriteLine("No reserve: {0}", dbInfo.NoReserve);
			Console.WriteLine("Forced writes: {0}", dbInfo.ForcedWrites);
			Console.WriteLine("Sweep interval: {0}", dbInfo.SweepInterval);
			Console.WriteLine("Number of page fetches: {0}", dbInfo.Fetches);
			Console.WriteLine("Number of page marks: {0}", dbInfo.Marks);
			Console.WriteLine("Number of page reads: {0}", dbInfo.Reads);
			Console.WriteLine("Number of page writes: {0}", dbInfo.Writes);
			Console.WriteLine("Removals of a version of a record: {0}", dbInfo.BackoutCount);
			Console.WriteLine("Number of database deletes: {0}", dbInfo.DeleteCount);
			Console.WriteLine("Number of removals of a record and all of its ancestors: {0}", dbInfo.ExpungeCount);
			Console.WriteLine("Number of inserts: {0}", dbInfo.InsertCount);
			Console.WriteLine("Number of removals of old versions of fully mature records: {0}", dbInfo.PurgeCount);
			Console.WriteLine("Number of reads done via an index: {0}", dbInfo.ReadIdxCount);
			Console.WriteLine("Number of sequential sequential table scans: {0}", dbInfo.ReadSeqCount);
			Console.WriteLine("Number of database updates: {0}", dbInfo.UpdateCount);
			Console.WriteLine("Database size in pages: {0}", dbInfo.DatabaseSizeInPages);
			Console.WriteLine("Number of the oldest transaction: {0}", dbInfo.OldestTransaction);
			Console.WriteLine("Number of the oldest active transaction: {0}", dbInfo.OldestActiveTransaction);
			Console.WriteLine("Number of the oldest active snapshot: {0}", dbInfo.OldestActiveSnapshot);
			Console.WriteLine("Number of the next transaction: {0}", dbInfo.NextTransaction);
			Console.WriteLine("Number of active transactions: {0}", dbInfo.ActiveTransactions);
		}
예제 #3
0
        private void DBConnect()
        {
            fb_con.Charset = "WIN1251"; //кодировка
            fb_con.UserID = "sysdba"; //логин
            fb_con.Password = "******"; //пароль
            fb_con.Database = @"D:\IB Expert 2.0/TESTBD"; //путь к файлу бд
            fb_con.ServerType = 0; //указываем тип сервера (0 - "полноценный Firebird" (classic или super server), 1 - встроенный (embedded))
            fb = new FbConnection(fb_con.ToString()); //передаем нашу строку подключения объекту класса FbConnection
            FbDatabaseInfo fb_inf = null; //информация о БД
            if (fb.State != ConnectionState.Connecting)
            {
                fb.Open(); //открываем БД
                fb_inf = new FbDatabaseInfo(fb); //информация о БД

                Console.WriteLine("Connecting to database...");//выводим тип и версию
            }
            else
            {
                return;
            }
        }