internal static void setValuesFromReader <T>(T obj, d.IDataReader reader) where T : class { //reader.FieldCount for (int i = 0; i < reader.FieldCount; i++) { var fieldName = reader.GetName(i); //this might be slow this is where some mapper would be handy //if considering larger results sets //which are mostly not existing if (reader.GetFieldType(i) == typeof(byte[])) { //reader all bytes long size = reader.GetBytes(i, 0, null, 0, 0); byte[] values = new byte[size]; int bufferSize = 1024; long bytesRead = 0; int curPos = 0; while (bytesRead < size) { bytesRead += reader.GetBytes(i, curPos, values, curPos, bufferSize); curPos += bufferSize; } obj.SetValue(fieldName, values); } else { if (reader.IsDBNull(i)) { obj.SetValue(fieldName, null); } else { var value = reader.GetValue(i); obj.SetValue(fieldName, value); } } } }
public byte[] PreencheAtributo(System.Data.IDataReader lDataReader, int NumeroColuna, byte[] Atributo) { if ((lDataReader.IsDBNull(NumeroColuna) == true)) { Byte[] TimesTamp = new Byte[8]; return(TimesTamp); } else { Byte[] TimesTamp = new Byte[8]; lDataReader.GetBytes(NumeroColuna, 0, TimesTamp, 0, 8); return(TimesTamp); } }
internal static void setValuesFromReader <T>(T obj, d.IDataReader reader) where T : IBattleAxe { //reader.FieldCount for (int i = 0; i < reader.FieldCount; i++) { var fieldName = reader.GetName(i); if (reader.GetFieldType(i) == typeof(byte[])) { //reader all bytes long size = reader.GetBytes(i, 0, null, 0, 0); byte[] values = new byte[size]; int bufferSize = 1024; long bytesRead = 0; int curPos = 0; while (bytesRead < size) { bytesRead += reader.GetBytes(i, curPos, values, curPos, bufferSize); curPos += bufferSize; } obj[fieldName] = values; } else { var value = reader.GetValue(i); if (reader.IsDBNull(i)) { obj[fieldName] = null; } else { obj[fieldName] = value; } } } }
public long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) { return(_innerReader.GetBytes(i, fieldOffset, buffer, bufferoffset, length)); }