private static void DoActionSql(ref StringBuilder sqlBuilder, ActionSql action)
 {
     if (sqlBuilder.ToString().Length > 0)
     {
         action(sqlBuilder.ToString());
         sqlBuilder = new StringBuilder();
     }
 }
Exemple #2
0
 private static void DoActionSql(ref StringBuilder sqlBuilder, ActionSql action)
 {
     if (sqlBuilder.ToString().Length > 0)
     {
         action(sqlBuilder.ToString());
         sqlBuilder = new StringBuilder();
     }
 }
 public static void ForeachSQLFromFile(string fileName, ActionSql action)
 {
     using (StreamReader sr = new StreamReader(fileName, Encoding.Default))
     {
         string baseDir = Path.GetDirectoryName(fileName);
         string sql = sr.ReadLine().Trim();
         StringBuilder sbuilder = new StringBuilder();
         string separator = "\\N";
         while (sql != null)
         {
             sql = sql.Trim();
             if (sql.Length > 0)
             {
                 if (sql.StartsWith("#split<", StringComparison.OrdinalIgnoreCase)
                     && sql.EndsWith(">"))
                 {
                     DoActionSql(ref sbuilder, action);
                     separator = sql.Substring("#split<".Length, sql.Length - "#split<".Length - 1);
                 }
                 else if (sql.StartsWith("#include<", StringComparison.OrdinalIgnoreCase)
                     && sql.EndsWith(">"))
                 {
                     DoActionSql(ref sbuilder, action);
                     string subFileName = sql.Substring("#include<".Length, sql.Length - "#include<".Length - 1);
                     ForeachSQLFromFile(Path.Combine(baseDir, subFileName), action);
                 }
                 else
                 {
                     if (separator.Equals("\\N", StringComparison.OrdinalIgnoreCase))
                     {
                         sbuilder.AppendLine(sql);
                         DoActionSql(ref sbuilder, action);
                     }
                     else
                     {
                         if (!sql.Equals(separator, StringComparison.OrdinalIgnoreCase))
                         {
                             sbuilder.AppendLine(sql);
                         }
                         else
                         {
                             DoActionSql(ref sbuilder, action);
                         }
                     }
                 }
             }
             sql = sr.ReadLine();
         }
         DoActionSql(ref sbuilder, action);
     }
 }
Exemple #4
0
 public static void ForeachSQLFromFile(string fileName, ActionSql action)
 {
     using (StreamReader sr = new StreamReader(fileName, Encoding.Default))
     {
         string        baseDir   = Path.GetDirectoryName(fileName);
         string        sql       = sr.ReadLine().Trim();
         StringBuilder sbuilder  = new StringBuilder();
         string        separator = "\\N";
         while (sql != null)
         {
             sql = sql.Trim();
             if (sql.Length > 0)
             {
                 if (sql.StartsWith("#split<", StringComparison.OrdinalIgnoreCase) &&
                     sql.EndsWith(">"))
                 {
                     DoActionSql(ref sbuilder, action);
                     separator = sql.Substring("#split<".Length, sql.Length - "#split<".Length - 1);
                 }
                 else if (sql.StartsWith("#include<", StringComparison.OrdinalIgnoreCase) &&
                          sql.EndsWith(">"))
                 {
                     DoActionSql(ref sbuilder, action);
                     string subFileName = sql.Substring("#include<".Length, sql.Length - "#include<".Length - 1);
                     ForeachSQLFromFile(Path.Combine(baseDir, subFileName), action);
                 }
                 else
                 {
                     if (separator.Equals("\\N", StringComparison.OrdinalIgnoreCase))
                     {
                         sbuilder.AppendLine(sql);
                         DoActionSql(ref sbuilder, action);
                     }
                     else
                     {
                         if (!sql.Equals(separator, StringComparison.OrdinalIgnoreCase))
                         {
                             sbuilder.AppendLine(sql);
                         }
                         else
                         {
                             DoActionSql(ref sbuilder, action);
                         }
                     }
                 }
             }
             sql = sr.ReadLine();
         }
         DoActionSql(ref sbuilder, action);
     }
 }