public static DoneProcToken Create(Stream stream, DbEnvironment env, IFormatToken previous) { var t = new DoneProcToken(); t.Read(stream, env, previous); return(t); }
private IEnumerable <IToken> ParseInternal(Stream stream, DbEnvironment env) { IFormatToken previousFormatToken = null; while (stream.Position < stream.Length) { var tokenType = (TokenType)stream.ReadByte(); if (Readers.ContainsKey(tokenType)) { var t = Readers[tokenType](stream, env, previousFormatToken); if (t is IFormatToken token) { Logger.Instance?.WriteLine($"**Set new format token**"); previousFormatToken = token; } yield return(t); } else { Logger.Instance?.WriteLine($"!!! Hit unknown token type {tokenType} !!!"); var t = new CatchAllToken(tokenType); t.Read(stream, env, previousFormatToken); yield return(t); } } }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { var remainingLength = stream.ReadUShort(); _capabilityBytes = new byte[remainingLength]; stream.Read(_capabilityBytes, 0, remainingLength); }
public static ServerCapabilityToken Create(Stream stream, DbEnvironment env, IFormatToken previous) { var t = new ServerCapabilityToken(); t.Read(stream, env, previous); return(t); }
public static OptionCommandToken Create(Stream stream, DbEnvironment env, IFormatToken previous) { var t = new OptionCommandToken(); t.Read(stream, env, previous); return(t); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { Status = (DoneProcStatus)stream.ReadUShort(); TransactionState = (TranState)stream.ReadUShort(); Count = stream.ReadInt(); Logger.Instance?.WriteLine($"<- {Status}, {TransactionState}, {Count}"); }
public static ParametersToken Create(Stream stream, DbEnvironment env, IFormatToken previous) { var t = new ParametersToken(); t.Read(stream, env, previous); return(t); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { var remainingLength = stream.ReadInt(); var status = stream.ReadByte(); HasParameters = (status & 1) > 0; CommandText = stream.ReadString(remainingLength - 1, env.Encoding); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { var remainingLength = CalculateRemainingLength(stream); for (uint i = 0; i < remainingLength; i++) { stream.ReadByte(); } }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { //var remainingLength = stream.ReadShort(); var remainingLength = CalculateRemainingLength(Type, stream); for (ulong i = 0; i < remainingLength; i++) { stream.ReadByte(); } }
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 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}"); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previousFormatToken) { Logger.Instance?.WriteLine($"<- {Type}"); var values = new List <object>(); foreach (var format in previousFormatToken.Formats) { values.Add(ValueReader.Read(stream, format, env)); } Values = values.ToArray(); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { var parameters = new List <Parameter>(); foreach (var format in previous.Formats) { var p = new Parameter { Format = format, Value = ValueReader.Read(stream, format, env) }; parameters.Add(p); } Parameters = parameters.ToArray(); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { var parameters = new List <Parameter>(); foreach (var format in previous.Formats) { var p = new Parameter { Format = format, Value = ValueReader.Read(stream, format, env) }; parameters.Add(p); } Parameters = parameters.ToArray(); Logger.Instance?.WriteLine($"<- {Type}: {Parameters.Length} parameters"); }
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 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}"); }
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 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(); } }
public IEnumerable <IToken> Read(TokenReceiveStream stream, DbEnvironment env) { IFormatToken previousFormatToken = null; while (stream.DataAvailable) { var rawTokenType = (byte)stream.ReadByte(); var tokenType = (TokenType)rawTokenType; if (Readers.ContainsKey(tokenType)) { var t = Readers[tokenType](stream, env, previousFormatToken); if (t is IFormatToken token) { Logger.Instance?.WriteLine($"**Set new format token**"); previousFormatToken = token; } yield return(t); } else { Logger.Instance?.WriteLine($"!!! Hit unknown token type {tokenType} !!!"); var t = new CatchAllToken(rawTokenType); t.Read(stream, env, previousFormatToken); yield return(t); } if (stream.IsCancelled) { Logger.Instance?.WriteLine($"{nameof(TokenReceiveStream)} - received cancel status flag"); yield return (new DoneToken { Count = 0, Status = DoneToken.DoneStatus.TDS_DONE_ATTN }); } } }
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(); } }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { throw new NotImplementedException(); }
public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { Status = stream.ReadInt(); Logger.Instance?.WriteLine($"<- {Type}: {Status}"); }