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); }
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; } }