示例#1
0
        /// <summary>
        /// This is a clever way to produce an SQL statement like this:
        ///
        ///     (select 'Spacesdd' as Tag, 'default' as [Group]
        ///     union
        ///     select 'Cool' as Tag, 'default' as [Group]
        ///     ) as TagSet
        ///
        /// This allows us to use the tags to be inserted as a temporary in memory table.
        /// </summary>
        /// <param name="tagsToInsert"></param>
        /// <returns></returns>
        private string GetTagSet(IEnumerable <ITag> tagsToInsert)
        {
            //TODO: Fix this query, since this is going to be basically a unique query each time, this will cause some mem usage in peta poco,
            // and surely there's a nicer way!
            //TODO: When we fix, be sure to remove the @ symbol escape

            var array = tagsToInsert
                        .Select(tag =>
                                string.Format("select '{0}' as Tag, '{1}' as " + SqlSyntax.GetQuotedColumnName("group") + @"",
                                              PetaPocoExtensions.EscapeAtSymbols(tag.Text.Replace("'", "''")), tag.Group))
                        .ToArray();

            return("(" + string.Join(" union ", array).Replace("  ", " ") + ") as TagSet");
        }
 public virtual string EscapeString(string val)
 {
     return(PetaPocoExtensions.EscapeAtSymbols(val.Replace("'", "''")));
 }
示例#3
0
 public override string EscapeString(string val)
 {
     return(PetaPocoExtensions.EscapeAtSymbols(MySql.Data.MySqlClient.MySqlHelper.EscapeString(val)));
 }
示例#4
0
 public virtual string EscapeAtArgument(string exp)
 {
     return(PetaPocoExtensions.EscapeAtSymbols(exp));
 }