public CommAreaGroupDescriptor( DrdaStreamReader reader) { if (reader.ReadUInt8() == 0xFF) { return; } SqlCode = reader.ReadUInt32(); SqlState = reader.ReadString(5); var sqlErrProc = reader.ReadString(8); if (reader.ReadUInt8() != 0xFF) { RowsFetched = reader.ReadUInt64(); RowsUpdated = reader.ReadUInt32(); var sqlErrs = reader.ReadBytes(12); // 3 * sizeof(UInt32) var sqlWarn = reader.ReadBytes(11); // 11 * sizeof(Byte) var rdbName = reader.ReadUInt16(); SqlMessage = reader.ReadVcmVcs(); } if (reader.ReadUInt8() != 0xFF) { // WORKWORK } }
public static String ReadVarString( this DrdaStreamReader reader) { var size = reader.ReadUInt16(); var bytes = reader.ReadBytes(size); return(Encoding.UTF8.GetString(bytes)); }
private static String ReadVarString( this DrdaStreamReader reader, Byte hiByte) { var size = (hiByte << 8) | reader.ReadUInt8(); var bytes = reader.ReadBytes((UInt32)size); return(Encoding.UTF8.GetString(bytes)); }
public BytesParameter( DrdaStreamReader reader, UInt32 byteArraySize, CodePoint codePoint) : this( codePoint, reader.ReadBytes( byteArraySize - BaseSize)) { }
internal void Process( QueryContext context) { using var stream = new MemoryStream(_messageBytes, false); var reader = new DrdaStreamReader(stream); while (stream.Position < stream.Length) { var length = reader.ReadUInt8(); var type = reader.ReadUInt8(); var id = reader.ReadUInt8(); // TODO: olegra - store full parsing tree here later if (id != 0xD0) { reader.ReadBytes((UInt32)length - 3); continue; } var triples = new Triple[length / 3 - 1]; for (var index = 0; index < triples.Length; ++index) { switch (type) { case 117: // GDA case 118: // NGDA triples[index] = new Triple( reader.ReadUInt8(), reader.ReadUInt16()); break; case 113: // RLO // TODO: olegra - skip for now reader.ReadUInt8(); reader.ReadUInt16(); break; } } for (var index = 0; index < triples.Length; ++index) { context.Columns[index].TripletType = triples[index].Type; context.Columns[index].TripletDataSize = triples[index].Size; } } }