Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sự cố bộ đệm MySqlDataReader GetBytes ...

Thay vì đọc toàn bộ kích thước bộ đệm, chỉ yêu cầu tối đa kích thước bộ đệm, nhưng cũng có nhiều nhất là những gì bạn tin là còn lại. Thành thật mà nói, bạn cũng có thể tạo bộ đệm có kích thước chính xác thay vì kích thước cố định.

// I assume this works for MySqlDataReader too...
int length = (int)reader.GetBytes(column, 0, null, 0, 0);
byte[] buffer = new byte[length];
int index = 0;

while (index < length)
{
    int bytesRead = (int)reader.GetBytes(column, index,
                                    buffer, index, length - index);
    index += bytesRead;
}

Nhưng nếu bạn muốn một bộ đệm nhỏ hơn (ví dụ:nếu bạn đang xử lý nó một bộ đệm tại một thời điểm), bạn có thể sử dụng:

int length = (int)reader.GetBytes(column, 0, null, 0, 0);
byte[] buffer = new byte[length];
int index = 0;

while (index < length)
{
    int bytesRead = (int)reader.GetBytes(column, index, buffer, 0, 
                                    Math.Max(buffer.Length, length - index));
    // Process the buffer, up to value bytesRead
    // ...
    index += bytesRead;
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi SQL tôi không thể tìm ra điều này

  2. Làm thế nào để loại bỏ một phần của chuỗi trong mysql?

  3. django.db.utils.operationalError:(2059, Trình cắm xác thực 'caching_sha2_password')

  4. Bảo vệ tiêm MySQL và các dấu hiệu lỗ hổng khi sử dụng PHP

  5. Làm thế nào để lặp lại đúng cách trong một hàm được lưu trữ trên MySQL?