Beispiel #1
0
 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;
         }
     }
 }
Beispiel #2
0
 private string getFileName(SqlMode sqlMode)
 {
     if (sqlMode == SqlMode.Select ||
         String.IsNullOrEmpty(FileName.Value))
     {
         return("");
     }
     else
     {
         return(Path.GetExtension(FileName.Value));
     }
 }
Beispiel #3
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();
                }
            }
        }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
 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;
 }
Beispiel #6
0
        /// <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);
        }
Beispiel #7
0
        /// <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
        }
Beispiel #8
0
 public bool isSqlModeActive(SqlMode mode) => isSqlModeActive((int)mode);
Beispiel #9
0
 public MySQLRecognizerCommon(int serverVersion = MySqlServerVersion.MAX_SERVER_VERSION, SqlMode sqlMode = SqlMode.NoMode)
 {
     this.sqlMode       = sqlMode;
     this.serverVersion = serverVersion;
 }
Beispiel #10
0
 }                                    // A collection of flags indicating which of relevant SQL modes are active.
 public bool isSqlModeActive(SqlMode mode)
 {
     return((sqlMode & mode) != 0);
 }
Beispiel #11
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));
 }