Как можно реализовать постоянное соединение с базой, не важно какой мУскл или мСскл? Скачал исходник aocell, эмулятор игрового сервера Anarchy Online, там есть код
| Код | public class MySqlWrapper { #region MySql Setup... /// <summary> /// Opens a Public MySql Datareader named 'myreader' to be used in any class that has AO.Core in the using /// </summary> public MySqlDataReader myreader; /// <summary> /// Opens a Public Mysql Connection named 'mcc' to be used in any class that has AO.Core in the using /// </summary> public MySqlConnection mcc; /// <summary> /// Opens a Public Mysql Command named 'mcom' to be used in any class that has AO.Core in using. /// </summary> public MySqlCommand mcom; #endregion #region MySql Read System... /// <summary> /// Reads SQL Table /// </summary> /// <param name="SqlQuery">Reads data from SQL DB, SqlQuery = string SqlQuery = "SELECT * FROM `table` WHERE ID = "+ "'"+charID+"'";</param> public void MySqlRead(string SqlQuery) { //MysqlRead: Create a SqlQuery to send to this wrapper for Reading the DB mcc = new MySqlConnection(ConfigReadWrite.Instance.CurrentConfig.MysqlConnection); mcom = new MySqlCommand(SqlQuery); mcom.Connection = mcc; mcom.CommandTimeout = 10000; mcc.Open(); myreader = mcom.ExecuteReader(); } #endregion #region MySql Update System... /// <summary> /// Updates Data in SQL Table /// </summary> /// <param name="SqlQuery">Updates data in SQL DB, SqlQuery = string SqlQuery = "UPDATE `table` SET `collum` = "+data+" WHERE ID = "'"+charID+"'";</param> public void MySqlUpdate(string SqlQuery) { mcc = new MySqlConnection(ConfigReadWrite.Instance.CurrentConfig.MysqlConnection); mcom = new MySqlCommand(SqlQuery); mcom.Connection = mcc; mcom.CommandTimeout = 10000; mcc.Open(); mcom.ExecuteNonQuery(); mcc.Close(); } #endregion #region MySql Insert System... /// <summary> /// Inserts data to SQL DB /// </summary> /// <param name="SqlQuery">Insert data into the SQL db, SqlQuery = INSERT INTO `dbname` VALUES (`item1_value`, `item2_value`, `etc`) </param> public void MySqlInsert(string SqlQuery) { mcc = new MySqlConnection(ConfigReadWrite.Instance.CurrentConfig.MysqlConnection); mcom = new MySqlCommand(SqlQuery); mcom.Connection = mcc; mcom.CommandTimeout = 10000; mcc.Open(); mcom.ExecuteNonQuery(); mcc.Close(); } #endregion #region MySql Delete System... /// <summary> /// Deletes data from the SQL Table /// </summary> /// <param name="SqlQuery">SQL Query to execute DELETE from SQL DB, SqlQuery = DELETE FROM `database` WHERE (`Field` = {value})</param> public void MySqlDelete(string SqlQuery) { mcc = new MySqlConnection(ConfigReadWrite.Instance.CurrentConfig.MysqlConnection); mcom = new MySqlCommand(SqlQuery); mcom.Connection = mcc; mcom.CommandTimeout = 10000; mcc.Open(); mcom.ExecuteNonQuery(); mcc.Close(); } #endregion }
|
То есть на каждое действие к базе он создаёт новое подключение, а потом закрывает его. И вообще такой подход актуален?
Если я ничего не путаю, то на си и си++ постоянное подключение реализовано через указатели. |