Пример #1
0
        private byte[] GetBytes(string field, SQLiteDataReader reader)
        {
            const int CHUNK_SIZE = 512 * 1024;

            char[] buffer = new char[CHUNK_SIZE];
            long   bytesRead;
            long   fieldOffset = 0;

            using (MemoryStream stream = new MemoryStream()) {
                int fieldPos = reader.GetOrdinal(field);
                if (reader.GetValue(fieldPos) != DBNull.Value)
                {
                    while ((bytesRead = reader.GetChars(fieldPos, fieldOffset, buffer, 0, buffer.Length)) > 0)
                    {
                        stream.Write(Encoding.Default.GetBytes(buffer), 0, (int)bytesRead);
                        fieldOffset += bytesRead;
                    }
                }
                return(stream.ToArray());
            }
        }