using System; using System.Collections.Generic; using System.Text; using FirebirdSql.Data.FirebirdClient; using Microsoft.Win32; using System.Data; using System.Diagnostics; namespace FPER { public class DacBase { public static int iOpenCount = 0; public static int iAccessCount = 0; //String strConnection = string.Format("Server={0};User={1};Password={2};Database={3};Charset={4};ServerType={5}", // "127.0.0.1", // IP ex)192.168.63.22 // "sysdba", // »ç¿ëÀÚ // "masterkey", // ¾ÏÈ£ // "D:\\Ÿ±âÀÛ¾÷½Ç\\¾ÆÀÌÄÜÆ®·Ñ½º\\DB\\FPER.FDB", // Àý´ëÀ§Ä¡.. ex) C:\TEST\TEST.FDB // "KSC_5601", // KSC_5601 °°Àº ¹®ÀÚ¼ÂÀ» ÁöÁ¤ // "0"); // 0À̸é Classic/Super Server, 1À̸é Embedded Server¸¦ ÁöÁ¤ÇϽŴÙÀ½... public FbConnection connection = null; public int Receiver_ID = 0; // cyim 2015.7.30 µ¥ÀÌŸº£À̽º Á¢¼Ó ·çƾ º¯°æ // cyim 2015.7.29 ¼ö½Å¹Ý ·çƾÀ» À§ÇØ ¿ÜºÎ ÆÄ¶ó¹ÌÅÍ·Î µ¿ÀÛÇϵµ·Ï ¼öÁ¤ : »ý¼ºÀÚ Ãß°¡ public DacBase(int ID) { Receiver_ID = ID; } ~DacBase() { } // cyim 2015.7.29 ¼ö½Å¹Ý ·çƾÀ» À§ÇØ ¿ÜºÎ ÆÄ¶ó¹ÌÅÍ·Î µ¿ÀÛÇϵµ·Ï ¼öÁ¤ // ¾ÆÀ̵ð¿Í ÆÐ½º¿öµå´Â °íÁ¤, ¸ðµå¿¡ µû¶ó ¾ÆÀÌÇÇ, °æ·Î°¡ Ʋ¸®´Ù public bool Connect() { bool ret = false; try { string DB_IP = null; string DB_PATH = null; // ¼ö½Å¹ÝÀÌ ¾Æ´Ï¶ó¸é ·¹Áö½ºÆ®¸®°ª ÀÌ¿ë if (_Data.FireDeskMode == false) { //·¹Áö½ºÆ®¸®¿¡¼­ DBÁ¢¼ÓÁ¤º¸ Àоî¿À±â // RegistryKey rk = Registry.LocalMachine.OpenSubKey("SOFTWARE\\I_FPER_COMM_DAEMON", false); // String SERVER_NAME = ""; // String DATABASE_NAME = ""; // String DATABASE_USER_ID = ""; // String DATABASE_PASSWORD = ""; // if (rk != null) // { // DATABASE_NAME = rk.GetValue("DATABASE_NAME").ToString(); // SERVER_NAME = DATABASE_NAME.Substring(0, DATABASE_NAME.IndexOf(":")); // DATABASE_NAME = DATABASE_NAME.Substring(DATABASE_NAME.IndexOf(":") + 1); // DATABASE_USER_ID = rk.GetValue("DATABASE_USER_ID").ToString(); // DATABASE_PASSWORD = rk.GetValue("DATABASE_PASSWORD").ToString(); DB_IP = _Data.Registry_DATABASE_NAME_IP; DB_PATH = _Data.Registry_DATABASE_NAME_PATH; } // ¼ö½Å¹ÝÀÎ °æ¿ì¿¡´Â ini ÆÄÀÏÀ» ÀÌ¿ë else { // ´Ü, ¼ö½Å±â ¾ÆÀ̵𰡠0À̶ó¸é ¼ö½Å¹Ý DB ¸¦ ÀÌ¿ëÇÏ´Â °ÍÀ̰í, ini ÆÄÀÏÀ» ÀÌ¿ëÇØ¼­ °æ·Î¸¦ ÆÄ¾ÇÇÑ´Ù if (Receiver_ID == 0) { DB_IP = _Data.Registry_DATABASE_NAME_IP; DB_PATH = _Data.Registry_DATABASE_NAME_PATH; } else { _FireDesk_Receiver FireDesk_Receiver = (_FireDesk_Receiver)_Data.Hash_Receiver[Receiver_ID.ToString()]; DB_IP = FireDesk_Receiver.DATABASE_NAME_IP; DB_PATH = FireDesk_Receiver.DATABASE_NAME_PATH; } } // »ç¿ëÀÚ¿Í ¾ÏÈ£´Â °íÁ¤½ÃŲ´Ù String strConnection = string.Format("Server={0};User={1};Password={2};Database={3};Charset={4};ServerType={5}", DB_IP, // IP ex)192.168.63.22 "SYSDBA", // »ç¿ëÀÚ "masterkey", // ¾ÏÈ£ DB_PATH, // Àý´ëÀ§Ä¡.. ex) C:\TEST\TEST.FDB "KSC_5601", // KSC_5601 °°Àº ¹®ÀÚ¼ÂÀ» ÁöÁ¤ "0"); // 0À̸é Classic/Super Server, 1À̸é Embedded Server¸¦ ÁöÁ¤ÇϽŴÙÀ½... connection = new FbConnection(strConnection); //connection.ConnectionTimeout = 2147483647; //connection.Database. connection.Open(); iOpenCount++; iAccessCount++; if (iAccessCount > 100000) { iAccessCount = 0; } ret = (this.connection.State == ConnectionState.Open); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } return ret; } public void DisConnect() { try { if (connection != null) connection.Close(); iOpenCount--; } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } ////Util.UDebugMessage("-DB DisConnect ", 0, 0); // cyim_debug //Debug.WriteLine(">>>>>> Close >>>>> " + Convert.ToString(iOpenCount)); } public DataSet Select(String sqlSyntax) { DataSet data = null; if (this.Connect()) { try { //Util.UDebugMessage(string.Format("+DB Select {0}", sqlSyntax), 0, 0); //FbTransaction transaction = connection.BeginTransaction(); //FbCommand command = new FbCommand(sqlSyntax, connection, transaction); FbCommand command = new FbCommand(sqlSyntax, connection); command.CommandType = CommandType.Text; command.CommandTimeout = 2147483647; data = new DataSet(); FbDataAdapter adapter = new FbDataAdapter(command); adapter.Fill(data); //transaction.Rollback(); adapter.Dispose(); command.Dispose(); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); throw ex; } finally { //Util.UDebugMessage(string.Format("-DB Select"), 0, 0); this.DisConnect(); } } return data; } public void ExecuteNonQuery(String sqlSyntax) { if (this.Connect()) { FbTransaction transaction = connection.BeginTransaction(); try { //Util.UDebugMessage(string.Format("+DB Excute {0}", sqlSyntax), 0, 0); FbCommand command = new FbCommand(sqlSyntax, connection, transaction); command.CommandType = CommandType.Text; command.CommandTimeout = 2147483647; //command.CommandType = CommandType.StoredProcedure; //command.Parameters.Add(New SqlParameter("@Cmd", CMD)) command.ExecuteNonQuery(); transaction.Commit(); command.Dispose(); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); transaction.Rollback(); throw ex; } finally { this.DisConnect(); //Util.UDebugMessage(string.Format("-DB Excute "), 0, 0); } } } } }