/// <summary>
 /// We delegate the writing of the fragment to the appropriate type.
 /// </summary>
 /// <param name="writer"></param>
 /// <param name="sqlGenerator"></param>
 public void WriteSql(SqlWriter writer, SqlGenerator sqlGenerator)
 {
     if (null != _sqlFragments)
     {
         foreach (object o in _sqlFragments)
         {
             string str = (o as String);
             if (null != str)
             {
                 writer.Write(str);
             }
             else
             {
                 ISqlFragment sqlFragment = (o as ISqlFragment);
                 if (null != sqlFragment)
                 {
                     sqlFragment.WriteSql(writer, sqlGenerator);
                 }
                 else if (o is char)
                 {
                     writer.Write((char)o);
                 }
                 else
                 {
                     throw new InvalidOperationException();
                 }
             }
         }
     }
 }
示例#2
0
        public static string WriteSql(ISqlFragment sqlStatement, SqlVisitor visitor)
        {
            var builder = new StringBuilder(1024);

            using (var writer = new SqlWriter(builder)) {
                sqlStatement.WriteSql(writer, visitor);
            }

            return(builder.ToString());
        }
示例#3
0
 public static string GetString(this ISqlFragment fragment, SqlGenerator sqlGenerator)
 {
     using (var writer = new SqlWriter())
     {
         if (fragment != null)
         {
             fragment.WriteSql(writer, sqlGenerator);
         }
         return(writer.ToString());
     }
 }
示例#4
0
 protected void WriteIntervalPart(SqlWriter writer, SqlGenerator sqlGenerator, ISqlFragment intervalPart)
 {
     if (intervalPart != null)
     {
         writer.Write("varchar(abs(");
         intervalPart.WriteSql(writer, sqlGenerator);
         writer.Write("))");
     }
     else
     {
         writer.Write("'0'");
     }
 }
 public virtual void WriteSql(SqlWriter writer, SqlGenerator sqlGenerator)
 {
     if (this._sqlFragments == null)
     {
         return;
     }
     foreach (object sqlFragment1 in this._sqlFragments)
     {
         string str = sqlFragment1 as string;
         if (str != null)
         {
             writer.Write(str);
         }
         else
         {
             ISqlFragment sqlFragment2 = sqlFragment1 as ISqlFragment;
             if (sqlFragment2 == null)
             {
                 throw new InvalidOperationException();
             }
             sqlFragment2.WriteSql(writer, sqlGenerator);
         }
     }
 }