public void sqlModeFromString(string modes) { sqlMode = SqlMode.NoMode; modes = modes.ToUpperInvariant(); foreach (var mode in modes.Split(',').Select(m => m.Trim())) { if (mode == "ANSI" || mode == "DB2" || mode == "MAXDB" || mode == "MSSQL" || mode == "ORACLE" || mode == "POSTGRESQL") { sqlMode = sqlMode | SqlMode.AnsiQuotes | SqlMode.PipesAsConcat | SqlMode.IgnoreSpace; } else if (mode == "ANSI_QUOTES") { sqlMode = sqlMode | SqlMode.AnsiQuotes; } else if (mode == "PIPES_AS_CONCAT") { sqlMode = sqlMode | SqlMode.PipesAsConcat; } else if (mode == "NO_BACKSLASH_ESCAPES") { sqlMode = sqlMode | SqlMode.NoBackslashEscapes; } else if (mode == "IGNORE_SPACE") { sqlMode = sqlMode | SqlMode.IgnoreSpace; } else if (mode == "HIGH_NOT_PRECEDENCE" || mode == "MYSQL323" || mode == "MYSQL40") { sqlMode = sqlMode | SqlMode.HighNotPrecedence; } } }
private string getFileName(SqlMode sqlMode) { if (sqlMode == SqlMode.Select || String.IsNullOrEmpty(FileName.Value)) { return(""); } else { return(Path.GetExtension(FileName.Value)); } }
private void sqlNonQuery(string connString, SqlMode mode) { int numRows = 0; using (SqlConnection conn = new SqlConnection(connString)) { try { conn.Open(); SqlCommand sc; switch (mode) { case SqlMode.Send: sc = new SqlCommand(insStmt(), conn); break; case SqlMode.Archive: sc = new SqlCommand(insArchStmt(), conn); break; case SqlMode.Delete: sc = new SqlCommand(delStmt(), conn); break; default: throw new NotImplementedException(); } numRows = sc.ExecuteNonQuery(); if (numRows > 1) { Exception e = new Exception("SQL NonQuery affected more than 1 row"); throw e; } else if (numRows < 1) { Exception e = new Exception("SQL NonQuery affected 0 rows"); throw e; } } catch (Exception e) { //todo: handle/throw other exceptions (connection, etc) //poss: numRows null (execute failure) throw e; } finally { conn.Close(); } } }
/// <summary> /// 获得Sql集合 /// </summary> /// <param name="sqlMode"></param> /// <returns></returns> private MySqlParameters getMySql(SqlMode sqlMode) { MySqlParameters mySql = new MySqlParameters("LogInfo"); mySql.EditSqlMode = sqlMode; mySql.Add("UserId", _UserId); mySql.Add("IP", _IP); mySql.Add("Des", _Des); mySql.Add("Optime", _Optime); if (sqlMode == SqlMode.Update) { mySql.Add("ID", _id, "id={0}"); } return(mySql); }
public MySqlParserTester() { charsets = new HashSet <string>(new string[] { "_utf8", "_utf8mb3", "_utf8mb4", "_ucs2", "_big5", "_latin2", "_ujis", "_binary", "_cp1250", "_latin1" }); lastErrors = new StringBuilder(); sqlMode = SqlMode.AnsiQuotes | SqlMode.IgnoreSpace; serverVersion = MySqlServerVersion.MAX_SERVER_VERSION; //serverVersion = MySqlVersionNumbers.MYSQL_VERSION_5_7_6; dump = true; buildParserTree = true; parseTreeView = string.Empty; }
/// <summary> /// /// </summary> /// <param name="mode"></param> public static void SetMode(SqlMode mode) { switch (mode) { case SqlMode.Read: _mode = mode; LastModifiedMode = DateTime.Now; break; case SqlMode.ReadOrWrite: _mode = mode; break; } //Debug.WriteLine("Debug.WriteLine: " + _mode); }
/// <summary> /// 组织MySqlParameters /// </summary> /// <param name="sqlMode">SQL语句类别</param> private void setMySql(SqlMode sqlMode) { mySql = new MySqlParameters("S_Test"); if (sqlMode == SqlMode.Select) { mySql.EditSqlMode = SqlMode.Select; mySql.Add("id", id, " and id={0}"); } else if (id == 0) { mySql.EditSqlMode = SqlMode.Insert; } else { mySql.EditSqlMode = SqlMode.Update; mySql.Add("id", id, " and id={0}"); } WebHelper.SetMySql(mySql, RDate); WebHelper.SetMySql(mySql, FunID); mySql.Add("title", txtTitle.Text); WebHelper.SetMySql(mySql, Notes); if (sqlMode == SqlMode.Select) { mySql.Add("FileName", null); } else if (!WebHelper.IsNullOrEmpty(FileName)) { mySql.Add("FileName", getFileName(mySql.EditSqlMode)); } WebHelper.SetMySql(mySql, IClass); WebHelper.SetMySql(mySql, IFlag); mySql.Add("optime", DateTime.Now); mySql.Add("UserID", CurrentUser.Id); #region 处理扩展信息 将字段、值 加入mySql AddMySql(MyInputs1); #endregion }
public bool isSqlModeActive(SqlMode mode) => isSqlModeActive((int)mode);
public MySQLRecognizerCommon(int serverVersion = MySqlServerVersion.MAX_SERVER_VERSION, SqlMode sqlMode = SqlMode.NoMode) { this.sqlMode = sqlMode; this.serverVersion = serverVersion; }
} // A collection of flags indicating which of relevant SQL modes are active. public bool isSqlModeActive(SqlMode mode) { return((sqlMode & mode) != 0); }
private void sqlNonQuery(string connString, SqlMode mode) { int numRows = 0; using (SqlConnection conn = new SqlConnection(connString)) { try { conn.Open(); SqlCommand sc; switch (mode) { case SqlMode.Send: sc = new SqlCommand(insStmt(), conn); break; case SqlMode.Archive: sc = new SqlCommand(insArchStmt(), conn); break; case SqlMode.Delete: sc = new SqlCommand(delStmt(), conn); break; default: throw new NotImplementedException(); } numRows = sc.ExecuteNonQuery(); if (numRows > 1) { Exception e = new Exception("SQL NonQuery affected more than 1 row"); throw e; } else if(numRows < 1) { Exception e = new Exception("SQL NonQuery affected 0 rows"); throw e; } } catch (Exception e) { //todo: handle/throw other exceptions (connection, etc) //poss: numRows null (execute failure) throw e; } finally { conn.Close(); } } }
public bool isSqlModeActive(SqlMode mode) { return(sqlMode.HasFlag(mode)); }