示例#1
0
            public override void Serialize(SqlQueryExpression expression, BinaryWriter writer)
            {
                SerializeSelectColumns(expression.SelectColumns, writer);

                writer.Write(expression.Distinct ? (byte)1 : (byte)0);

                if (expression.FromClause != null)
                {
                    writer.Write((byte)1);
                    FromClause.Serialize(expression.FromClause, writer);
                }
                else
                {
                    writer.Write((byte)0);
                }

                if (expression.WhereExpression != null)
                {
                    writer.Write((byte)1);
                    SqlExpression.Serialize(expression.WhereExpression, writer);
                }
                else
                {
                    writer.Write((byte)0);
                }

                if (expression.GroupBy != null)
                {
                    throw new NotImplementedException();
                }

                if (expression.GroupMax != null)
                {
                    writer.Write((byte)1);
                    ObjectName.Serialize(expression.GroupMax, writer);
                }
                else
                {
                    writer.Write((byte)0);
                }

                if (expression.HavingExpression != null)
                {
                    writer.Write((byte)1);
                    SqlExpression.Serialize(expression.HavingExpression, writer);
                }
                else
                {
                    writer.Write((byte)0);
                }

                // TODO: Composites!!
            }