コード例 #1
0
        private void FormatCountQuery()
        {
            string tableName = SqlHelpers.FormatTableName(_query.TableName);

            _sql.AppendFormat("SELECT COUNT(1) AS [count] FROM {0}", tableName);

            if (_query.Filter != null)
            {
                FormatWhereClause(_query.Filter);
            }
        }
コード例 #2
0
        public string FormatSelect()
        {
            var command = new StringBuilder("SELECT ");

            if (_query.Selection.Any())
            {
                string columnNames = string.Join(", ", _query.Selection.Select(c => SqlHelpers.FormatMember(c)));
                command.Append(columnNames);
            }
            else
            {
                command.Append("*");
            }

            return(FormatQuery(command.ToString()));
        }
コード例 #3
0
        public string FormatDelete()
        {
            var delQuery = _query.Clone(); // create a copy to avoid modifying the original

            delQuery.Selection.Clear();
            delQuery.Selection.Add(MobileServiceSystemColumns.Id);
            delQuery.IncludeTotalCount = false;

            var    formatter     = new SqlQueryFormatter(delQuery);
            string selectIdQuery = formatter.FormatSelect();
            string idMemberName  = SqlHelpers.FormatMember(MobileServiceSystemColumns.Id);
            string tableName     = SqlHelpers.FormatTableName(delQuery.TableName);
            string command       = $"DELETE FROM {tableName} WHERE {idMemberName} IN ({selectIdQuery})";

            Parameters = formatter.Parameters;

            return(command);
        }
コード例 #4
0
        public override QueryNode Visit(ConvertNode nodeIn)
        {
            _sql.Append("CAST(");

            QueryNode source = nodeIn.Source.Accept(this);

            _sql.Append(" AS ");

            string sqlType = SqlHelpers.GetStoreCastType(nodeIn.TargetType);

            _sql.Append(sqlType);

            _sql.Append(")");

            if (source != nodeIn.Source)
            {
                return(new ConvertNode(source, nodeIn.TargetType));
            }

            return(nodeIn);
        }