code_junkie

Hacky Sql Compact Workaround

Nov 13th, 2011
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. public override int Read(byte[] buffer, int offset, int count)
  2. {
  3. m_length = m_length ?? m_dr.GetBytes(0, 0, null, offset, count);
  4.  
  5. if (m_fieldOffSet < m_length)
  6. {
  7. var bytesRead = m_dr.GetBytes(0, m_fieldOffSet, buffer, offset, count);
  8. m_fieldOffSet += bytesRead;
  9.  
  10. if (m_dr is SqlCeDataReader)
  11. {
  12. //BEGIN HACK
  13. //This is a horrible HACK.
  14. m_field = m_field ?? typeof (SqlCeDataReader).GetField("sequentialUnitsRead", BindingFlags.NonPublic | BindingFlags.Instance);
  15. var length = (long)(m_field.GetValue(m_dr));
  16. if (length != m_fieldOffSet)
  17. {
  18. m_field.SetValue(m_dr, m_fieldOffSet);
  19. }
  20. //END HACK
  21. }
  22.  
  23. return (int) bytesRead;
  24. }
  25. else
  26. {
  27. return 0;
  28. }
  29. }
Add Comment
Please, Sign In to add comment