public static void Close() { if (DlqMysql.SQL != IntPtr.Zero) { DlqMysql.mysql_close(DlqMysql.SQL); } DlqMysql.IsConnected = false; }
public static void Disconnect() { if (!(DlqMysql.SQL == IntPtr.Zero)) { DlqMysql.QueueThread = null; DlqMysql.mysql_close(DlqMysql.SQL); DlqMysql.IsConnected = false; } }
private static void ProcessQueue() { if (DlqMysql.QueueThread != null) { if (DlqMysql.Queue.Count > 0 && DlqMysql.IsReady && DlqMysql.Query(DlqMysql.Queue[0], true) != null) { DlqMysql.Queue.RemoveAt(0); } } }
public static string Error() { string result; if (DlqMysql.SQL == IntPtr.Zero) { result = null; } else { result = Marshal.PtrToStringAnsi(DlqMysql.mysql_error(DlqMysql.SQL)); } return(result); }
public static string GetCharacterSet() { string result; if (DlqMysql.SQL == IntPtr.Zero) { result = null; } else { result = Marshal.PtrToStringAnsi(DlqMysql.mysql_character_set_name(DlqMysql.SQL)); } return(result); }
public static bool Initialize() { DlqMysql.SQL = DlqMysql.mysql_init(IntPtr.Zero); bool result; if (DlqMysql.Initialized = (DlqMysql.SQL != IntPtr.Zero)) { DlqMysql.VersionId = DlqMysql.mysql_get_client_version(); DlqMysql.Version = new Version(DlqMysql.mysql_get_client_version().ToString("#-##-##").Replace("-", ".")); if (DlqMysql.VersionId < DlqMysql.MinVersion || DlqMysql.VersionId > DlqMysql.MaxVersion) { result = (DlqMysql.Initialized = false); return(result); } } result = DlqMysql.Initialized; return(result); }
public static bool Connect() { bool result; if (!DlqMysql.Initialized || DlqMysql.SQL == IntPtr.Zero) { result = false; } else if (DlqMysql.mysql_real_connect(DlqMysql.SQL, DlqMysql.HostName, DlqMysql.Username, DlqMysql.Password, DlqMysql.Database, DlqMysql.HostPort, DlqMysql.UnixSocket, DlqMysql.ConnectFlags) == IntPtr.Zero) { result = false; } else { DlqMysql.ServerVersion = new Version(DlqMysql.mysql_get_server_version(DlqMysql.SQL).ToString("#-##-##").Replace("-", ".")); result = (DlqMysql.IsReady = true); } return(result); }
public static List <string> Databases(string wild = null) { IntPtr intPtr = DlqMysql.mysql_list_dbs(DlqMysql.SQL, wild); List <string> result; if (intPtr == IntPtr.Zero) { result = null; } else { List <string> list = new List <string>(); for (ulong num = 0uL; num < DlqMysql.mysql_num_rows(intPtr); num += 1uL) { IntPtr ptr = DlqMysql.mysql_fetch_row(intPtr); list.Add(Marshal.PtrToStringAnsi(Marshal.ReadIntPtr(ptr))); } result = list; } return(result); }
public static bool Connect(string host, string username, string password, string db_name, uint port, string unix_socket = null, DlqMysql.ClientFlags flags = (DlqMysql.ClientFlags) 0uL) { if (!DlqMysql.Initialized) { DlqMysql.Initialize(); } DlqMysql.HostName = host; DlqMysql.HostPort = port; DlqMysql.Username = username; DlqMysql.Password = password; DlqMysql.Database = db_name; DlqMysql.UnixSocket = unix_socket; DlqMysql.ConnectFlags = (int)(flags | DlqMysql.ClientFlags.CLIENT_MULTI_STATEMENTS); DlqMysql.mysql_options(DlqMysql.SQL, DlqMysql.MySqlOption.MYSQL_OPT_CONNECT_TIMEOUT, Marshal.StringToCoTaskMemAnsi(DlqMysql.ConnectTimeout.ToString())); DlqMysql.mysql_options(DlqMysql.SQL, DlqMysql.MySqlOption.MYSQL_OPT_RECONNECT, Marshal.StringToCoTaskMemAnsi(DlqMysql.Reconnect ? "1" : "0")); if (DlqMysql.Charset.Equals("UTF8", StringComparison.OrdinalIgnoreCase)) { DlqMysql.mysql_options(DlqMysql.SQL, DlqMysql.MySqlOption.MYSQL_SET_CHARSET_NAME, Marshal.StringToCoTaskMemAnsi(DlqMysql.Charset)); DlqMysql.mysql_options(DlqMysql.SQL, DlqMysql.MySqlOption.MYSQL_INIT_COMMAND, Marshal.StringToCoTaskMemAnsi("SET NAMES utf8")); } return(DlqMysql.Connect()); }
public static void Update(string query) { if (DlqMysql.IsReady) { try { DlqMysql.IsReady = false; int num; if (Core.MySQL_UTF8) { num = DlqMysql.mysql_query(DlqMysql.SQL, query); } else { num = DlqMysql.mysql_real_query(DlqMysql.SQL, query, query.Length); } if (DlqMysql.LogLevel > DlqMysql.LogLevelType.ERRORS) { Helper.LogSQL(query, false); } if (num != 0 || DlqMysql.ErrorCode != 0u) { if (DlqMysql.LogLevel > DlqMysql.LogLevelType.NONE) { Helper.LogSQLError(DlqMysql.Error(), true); } DlqMysql.mysql_ping(DlqMysql.SQL); DlqMysql.IsReady = true; return; } } catch (Exception ex) { Helper.LogSQLError(query, false); Helper.LogSQLError(ex.Message.ToString(), true); } DlqMysql.IsReady = true; } }
public static bool SelectDB(string db_name) { return(DlqMysql.Initialized && !(DlqMysql.SQL == IntPtr.Zero) && DlqMysql.mysql_select_db(DlqMysql.SQL, db_name) == 0); }
public static DlqMysql.Result Query(string query, bool skip = false) { DlqMysql.Result result = null; DlqMysql.Result result3; try { if (!DlqMysql.IsReady && skip) { DlqMysql.Result result2 = result; result3 = result2; return(result3); } DlqMysql.IsReady = false; int num; if (Core.MySQL_UTF8) { num = DlqMysql.mysql_query(DlqMysql.SQL, query); } else { num = DlqMysql.mysql_real_query(DlqMysql.SQL, query, query.Length); } if (num != 0 || DlqMysql.ErrorCode != 0u) { if (DlqMysql.LogLevel > DlqMysql.LogLevelType.NONE) { Helper.LogSQLError(DlqMysql.Error(), true); } DlqMysql.mysql_ping(DlqMysql.SQL); DlqMysql.IsReady = true; DlqMysql.Result result2 = null; result3 = result2; return(result3); } if (DlqMysql.LogLevel > DlqMysql.LogLevelType.ERRORS) { Helper.LogSQL(query, false); } IntPtr intPtr = DlqMysql.mysql_store_result(DlqMysql.SQL); if (DlqMysql.ErrorCode == 0u && !(intPtr == IntPtr.Zero)) { result = new DlqMysql.Result(); result.Fields = DlqMysql.mysql_num_fields(intPtr); result.Rows = DlqMysql.mysql_num_rows(intPtr); int num2 = 0; while ((long)num2 < (long)((ulong)result.Fields)) { result.Field.Add((DlqMysql.Field)Marshal.PtrToStructure(DlqMysql.mysql_fetch_field(intPtr), typeof(DlqMysql.Field))); num2++; } IntPtr value; while ((value = DlqMysql.mysql_fetch_row(intPtr)) != IntPtr.Zero) { result.Row.Add(new DlqMysql.Row(result, value)); } DlqMysql.mysql_free_result(intPtr); } else { result = null; } } catch (Exception ex) { result = null; Helper.LogSQLError(query, false); Helper.LogSQLError(ex.Message.ToString(), true); } DlqMysql.IsReady = true; result3 = result; return(result3); }