using System; using System.Collections.Generic; using System.Text; using FirebirdSql.Data.FirebirdClient; using Microsoft.Win32; using System.Data; using System.Diagnostics; namespace IControls_FireManager { //DATABASE ÀÛ¾÷ ¸ðµå public enum QUERYMode { select, insert, update, delete, InsertAndUpdate } //TB_COMMÀÇ COMM_LOOP ÇÊµå »ó¼ö public enum COMMLOOP { FrontLoop = 1, BackLoop = 2, IO = 3, KEYPAD = 4, EmergencyBroadcast = 5 } public class DacBase { //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¸¦ ÁöÁ¤ÇϽŴÙÀ½... // FireBird ¿¬°áÀÚ public FbConnection connection = null; public _DB_Connect DBSetting = null; public bool DBSet(_DB_Connect cDB) { DBSetting = new _DB_Connect(); DBSetting.sDATABASE_NAME = cDB.sDATABASE_NAME; DBSetting.sPASSWORD = cDB.sPASSWORD; DBSetting.sUSER_ID = cDB.sUSER_ID; DBSetting.sSERVER_NAME = cDB.sSERVER_NAME; return true; } public bool Connect() { bool ret = false; string strConnection; try { if (DBSetting != null) // DBSetting ¼³Á¤ÀÌ µÈ °æ¿ì.. { strConnection = string.Format("Server={0};User={1};Password={2};Database={3};Charset={4};ServerType={5}", DBSetting.sSERVER_NAME, // IP ex)192.168.63.22 DBSetting.sUSER_ID, // »ç¿ëÀÚ DBSetting.sPASSWORD, // ¾ÏÈ£ DBSetting.sDATABASE_NAME, // Àý´ëÀ§Ä¡.. ex) C:\TEST\TEST.FDB "KSC_5601", // KSC_5601 °°Àº ¹®ÀÚ¼ÂÀ» ÁöÁ¤ "0"); // 0À̸é Classic/Super Server, 1À̸é Embedded Server¸¦ ÁöÁ¤ÇϽŴÙÀ½... } else { //·¹Áö½ºÆ®¸®¿¡¼­ DBÁ¢¼ÓÁ¤º¸ Àоî¿À±â RegistryKey rk = Registry.LocalMachine.OpenSubKey("SOFTWARE\\I_FireManager", 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(); } strConnection = string.Format("Server={0};User={1};Password={2};Database={3};Charset={4};ServerType={5}", SERVER_NAME, // IP ex)192.168.63.22 DATABASE_USER_ID, // »ç¿ëÀÚ DATABASE_PASSWORD, // ¾ÏÈ£ DATABASE_NAME, // Àý´ëÀ§Ä¡.. ex) C:\TEST\TEST.FDB "KSC_5601", // KSC_5601 °°Àº ¹®ÀÚ¼ÂÀ» ÁöÁ¤ "0"); // 0À̸é Classic/Super Server, 1À̸é Embedded Server¸¦ ÁöÁ¤ÇϽŴÙÀ½... } connection = new FbConnection(strConnection); //connection.Database. connection.Open(); ret = (this.connection.State == ConnectionState.Open); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); throw new Exception(string.Format("[{0}]\r\n{1}", ex.Message, ex.StackTrace)); } return ret; } public void DisConnect() { try { if (connection != null) connection.Close(); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } //Util.UDebugMessage("-DB DisConnect ", 0, 0); //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); FbCommand command = new FbCommand(sqlSyntax, connection); command.CommandType = CommandType.Text; command.CommandTimeout = 2147483647; data = new DataSet(); FbDataAdapter adapter = new FbDataAdapter(command); adapter.Fill(data); 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.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); } } } } }