public void Read(Stream stream, DbEnvironment env, IFormatToken previousFormatToken)
        {
            var remainingLength = stream.ReadByte();

            using (var ts = new ReadablePartialStream(stream, remainingLength))
            {
                Status    = (MsgStatus)ts.ReadByte();
                MessageId = (MsgId)ts.ReadShort();
            }
            Logger.Instance?.WriteLine($"<- {Type}: {Status} {MessageId}");
        }
示例#2
0
        public void Read(Stream stream, DbEnvironment env, IFormatToken previousFormatToken)
        {
            var remainingLength = stream.ReadShort();

            using (var ts = new ReadablePartialStream(stream, remainingLength))
            {
                Command   = (CommandType)ts.ReadByte();
                Option    = (OptionType)ts.ReadByte();
                Arguments = ts.ReadByteLengthPrefixedByteArray();
            }
        }
        public void Read(Stream stream, DbEnvironment env, IFormatToken previous)
        {
            Logger.Instance?.WriteLine($"<- {Type}");
            var remainingLength = stream.ReadUShort();

            using (var ts = new ReadablePartialStream(stream, remainingLength))
            {
                for (var i = 0; i < previous.Formats.Length; i++)
                {
                    var customFormatInfo = ts.ReadByteLengthPrefixedString(env.Encoding);
                    if (!string.IsNullOrWhiteSpace(customFormatInfo))
                    {
                        Logger.Instance?.WriteLine($"  <- Fmt: {customFormatInfo}");
                    }
                }
            }
        }
        public void Read(Stream stream, DbEnvironment env, IFormatToken previousFormatToken)
        {
            Logger.Instance?.WriteLine($"<- {Type}");
            var remainingLength = stream.ReadUInt();

            using (var ts = new ReadablePartialStream(stream, remainingLength))
            {
                var formats     = new List <FormatItem>();
                var columnCount = ts.ReadUShort();

                for (var i = 0; i < columnCount; i++)
                {
                    formats.Add(FormatItem.ReadForRow(ts, env.Encoding, Type));
                }

                Formats = formats.ToArray();
            }
        }
        public void Read(Stream stream, DbEnvironment env, IFormatToken previous)
        {
            var remainingLength = stream.ReadUShort();

            using (var ts = new ReadablePartialStream(stream, remainingLength))
            {
                Status = (LoginStatus)ts.ReadByte();
                var versionBuffer = new byte[4];
                ts.Read(versionBuffer, 0, 4);
                TdsVersion = $"{versionBuffer[0]}.{versionBuffer[1]}.{versionBuffer[2]}.{versionBuffer[3]}";

                ProgramName = ts.ReadByteLengthPrefixedString(env.Encoding);

                ts.Read(versionBuffer, 0, 4);
                ProgramVersion = $"{versionBuffer[0]}.{versionBuffer[1]}.{versionBuffer[2]}"; //Sybase driver only reports the first 3 version numbers, eg: 15.0.0
            }
            Logger.Instance?.WriteLine($"<- {Type}: TDS {TdsVersion}, {ProgramName} {ProgramVersion}");
        }
示例#6
0
        public void Read(Stream stream, DbEnvironment env, IFormatToken previousFormatToken)
        {
            var remainingLength = Type == TokenType.TDS_PARAMFMT
                ? stream.ReadUShort()
                : stream.ReadUInt();

            using (var ts = new ReadablePartialStream(stream, remainingLength))
            {
                var paramCount = ts.ReadUShort();
                var formats    = new List <FormatItem>();

                for (var i = 0; i < paramCount; i++)
                {
                    formats.Add(FormatItem.ReadForParameter(ts, env.Encoding, Type));
                }

                Formats = formats.ToArray();
            }
        }
示例#7
0
        public void Read(Stream stream, DbEnvironment env, IFormatToken previous)
        {
            var remainingLength = stream.ReadUShort();

            using (var ts = new ReadablePartialStream(stream, remainingLength))
            {
                MessageNumber = ts.ReadInt();
                State         = ts.ReadByte();          // Already checked remainingLength so can use non-checking version
                Severity      = ts.ReadByte();
                var sqlStateLen = ts.ReadByte();
                SqlState = new byte[sqlStateLen];
                ts.Read(SqlState, 0, sqlStateLen);
                Status            = (EedStatus)ts.ReadByte();
                TransactionStatus = (TranState)ts.ReadUShort();
                Message           = ts.ReadShortLengthPrefixedString(env.Encoding);
                ServerName        = ts.ReadByteLengthPrefixedString(env.Encoding);
                ProcedureName     = ts.ReadByteLengthPrefixedString(env.Encoding);
                LineNumber        = ts.ReadUShort();
            }
        }
        public void Read(Stream stream, DbEnvironment env, IFormatToken previous)
        {
            var remainingLength = stream.ReadShort();

            using (var ts = new ReadablePartialStream(stream, remainingLength))
            {
                var changes = new List <EnvironmentChange>();

                while (ts.Position < ts.Length)
                {
                    var change = new EnvironmentChange
                    {
                        Type     = (ChangeType)ts.ReadByte(),
                        NewValue = ts.ReadByteLengthPrefixedString(env.Encoding),
                        OldValue = ts.ReadByteLengthPrefixedString(env.Encoding)
                    };
                    changes.Add(change);
                }
                Changes = changes.ToArray();
            }
        }