Esempio n. 1
0
        internal DescAreaRowDescMessage(
            ResponseMessage response)
            : base(response)
        {
            var reader = ((ReaderCommand)response.Command).Reader;

            _commAreaGroupDescriptor = new CommAreaGroupDescriptor(reader);

            if (reader.ReadUInt8() != 0xFF)
            {
                var holdable   = reader.ReadUInt16();
                var returnable = reader.ReadUInt16();
                var scrollable = reader.ReadUInt16();
                var sensitive  = reader.ReadUInt16();
                var code       = reader.ReadUInt16();
                var keyType    = reader.ReadUInt16();

                var rdbName = reader.ReadVarString();
                var schema  = reader.ReadVcmVcs();
            }

            var number = reader.ReadUInt16();

            _columns = new List <DrdaColumn>(number);

            for (var i = 0; i < number; i++)
            {
                _columns.Add(new DrdaColumn(reader));
            }
        }
Esempio n. 2
0
        internal CommAreaRowDescMessage(
            ResponseMessage response)
            : base(response)
        {
            var reader = ((ReaderCommand)response.Command).Reader;

            _commAreaGroupDescriptor = new CommAreaGroupDescriptor(reader);

            _messages = _commAreaGroupDescriptor.SqlMessage
                        .Split(MessagesSeparator, StringSplitOptions.RemoveEmptyEntries);
        }
Esempio n. 3
0
        private Boolean ProcessSingleRow(
            DrdaStreamReader reader,
            QueryContext context)
        {
            var groupDescriptor = new CommAreaGroupDescriptor(reader);

            reader.ReadUInt8(); // Parent nullable triplet

            if (groupDescriptor.SqlCode == 100 &&
                String.Equals(groupDescriptor.SqlState, "02000"))
            {
                context.HasMoreData = false;
                return(false);
            }

            context.Rows.Enqueue(context.Columns
                                 .Select(reader.ReadColumnValue).ToList());

            return(true);
        }