public void Read(Stream stream, DbEnvironment env, IFormatToken previous) { var remainingLength = stream.ReadUShort(); _capabilityBytes = new byte[remainingLength]; stream.Read(_capabilityBytes, 0, remainingLength); }
public static DoneProcToken Create(Stream stream, DbEnvironment env, IFormatToken previous) { var t = new DoneProcToken(); 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 static ServerCapabilityToken Create(Stream stream, DbEnvironment env, IFormatToken previous) { var t = new ServerCapabilityToken(); t.Read(stream, env, previous); return(t); }
public void Write(Stream stream, DbEnvironment env) { Logger.Instance?.WriteLine($"Write {Type}"); stream.WriteByte((byte)Type); stream.WriteShort((short)_capabilityBytes.Length); stream.Write(_capabilityBytes); }
public void Write(Stream stream, DbEnvironment env) { Logger.Instance?.WriteLine($"-> {Type}: {Formats.Length} parameters"); stream.WriteByte((byte)Type); var paramCount = (short)Formats.Length; using (var ms = new MemoryStream()) { foreach (var format in Formats) { format.WriteForParameter(ms, env.Encoding, Type); } ms.Seek(0, SeekOrigin.Begin); var formatBytes = ms.ToArray(); //length var remainingLength = 2 + formatBytes.Length; if (Type == TokenType.TDS_PARAMFMT) { stream.WriteShort((short)remainingLength); } else { stream.WriteUInt((uint)remainingLength); } stream.WriteShort(paramCount); stream.Write(formatBytes, 0, formatBytes.Length); } }
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 Write(Stream stream, DbEnvironment env) { Logger.Instance?.WriteLine($"-> {Type}: {Status} {MessageId}"); stream.WriteByte((byte)Type); stream.WriteByte(3); stream.WriteByte((byte)Status); stream.WriteShort((short)MessageId); }
public void AssertHandlesTextSizeChange() { var environment = new DbEnvironment(); var handler = new EnvChangeTokenHandler(environment, string.Empty); handler.Handle(OptionCommandToken.CreateSetTextSize(9999)); Assert.AreEqual(9999, environment.TextSize); }
public void Write(Stream stream, DbEnvironment env) { Logger.Instance?.WriteLine($"Write {Type}"); foreach (var token in _tokens) { token.Write(stream, env); } }
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 Write(Stream stream, DbEnvironment env) { Logger.Instance?.WriteLine($"-> {Type}: {Parameters.Length} parameters"); stream.WriteByte((byte)Type); foreach (var parameter in Parameters) { ValueWriter.Write(parameter.Value, stream, parameter.Format, 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 Write(Stream stream, DbEnvironment env) { Logger.Instance?.WriteLine($"Write {Type}: '{CommandText}'"); stream.WriteByte((byte)Type); var commandText = env.Encoding.GetBytes(CommandText); stream.WriteInt(1 + commandText.Length); stream.WriteByte((byte)(HasParameters ? 1 : 0)); stream.Write(commandText, 0, commandText.Length); }
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 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 Write(Stream stream, DbEnvironment env) { Logger.Instance?.Write($"-> {Type}: {Command}, {Option},"); foreach (var b in Arguments) { Logger.Instance?.Write($" {b:x2}"); } stream.WriteByte((byte)Type); stream.WriteShort((short)(3 + Arguments.Length)); stream.WriteByte((byte)Command); stream.WriteByte((byte)Option); stream.WriteBytePrefixedByteArray(Arguments); }
public void Write(Stream stream, DbEnvironment env) { Logger.Instance?.WriteLine($"-> {Type}: {ProcedureName}"); var rpcNameBytes = env.Encoding.GetBytes(ProcedureName); var rpcLength = (byte)rpcNameBytes.Length; stream.WriteByte((byte)Type); stream.WriteShort((short)(rpcLength + 3)); stream.WriteByte(rpcLength); stream.Write(rpcNameBytes, 0, rpcLength); stream.WriteShort((short)(HasParameters ? DbRpcOptions.TDS_RPC_PARAMS : DbRpcOptions.TDS_RPC_UNUSED)); }
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 Write(Stream stream, DbEnvironment env) { Logger.Instance?.WriteLine($"Write {Type}"); stream.WriteByte((byte)Type); //we can't write directly to the stream because we need to know the length up-front using (var ms = new MemoryStream()) { foreach (var c in Changes) { c.Write(ms, env.Encoding); } ms.Seek(0, SeekOrigin.Begin); stream.WriteShort((short)ms.Length); ms.CopyTo(stream); } }
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}"); } } } }
/// <summary> /// コンストラクタ、DB接続環境とテーブル名を指定して初期化する /// </summary> /// <param name="environment">DB接続環境</param> /// <param name="name">DB上のテーブル名</param> public TableDef(DbEnvironment environment, string name) { this.Environment = environment; this.Name = name; this.ColumnMap = new ColumnMap(); // プロパティと列をバインドする Mediator.Table = this; try { this.Columns = TypewiseCache <TColumns> .Creator(); // 全プロパティを一度呼び出す事でバインドされる AllColumnsBinder(this.Columns); } finally { Mediator.Table = null; } }
public void AssertHandlesDbEnvChange() { var environment = new DbEnvironment(); var handler = new EnvChangeTokenHandler(environment, string.Empty); handler.Handle(new EnvironmentChangeToken() { Changes = new[] { new EnvironmentChangeToken.EnvironmentChange() { Type = EnvironmentChangeToken.ChangeType.TDS_ENV_DB, NewValue = "MyDB" } } }); Assert.AreEqual("MyDB", environment.Database); }
public void AssertHandlesPacketSizeChange() { var environment = new DbEnvironment(); var handler = new EnvChangeTokenHandler(environment, string.Empty); handler.Handle(new EnvironmentChangeToken() { Changes = new[] { new EnvironmentChangeToken.EnvironmentChange() { Type = EnvironmentChangeToken.ChangeType.TDS_ENV_PACKSIZE, NewValue = "512" } } }); Assert.AreEqual(512, environment.PacketSize); }
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}"); }