sql >> Database >  >> RDS >> Mysql

MySqlDataReader GetBytes bufferprobleem...

In plaats van de hele buffergrootte te lezen, vraag alleen om maximaal de buffergrootte, maar ook hoogstens wat je denkt dat er nog over is. Om eerlijk te zijn, kun je net zo goed een buffer van precies de juiste maat maken in plaats van toch een vaste grootte.

// 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;
}

Maar als u een kleinere buffer wilt (bijvoorbeeld als u deze buffer per keer verwerkt), kunt u het volgende gebruiken:

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. Aan de slag met GearHost voor SQL Server-databaseontwikkeling

  2. Een lijst met e-mails retourneren die zijn verzonden vanuit SQL Server Database Mail (T-SQL)

  3. Query vergelijken van datums in SQL

  4. MySQL db vraagtekens in plaats van Hebreeuwse karakters..?