sql >> Database teknologi >  >> RDS >> Oracle

Sådan får du BLOB-data ved hjælp af oracle ODBC

Jeg er ikke bekendt med ODBC-programmering, men ved første øjekast er et problem, jeg kan se, at du antager, at din datalængde er multiplum af din bufferstørrelse. Men den sidste læsning er ikke garanteret at returnere præcis 500 bytes data.

Du burde skrive sådan noget. Måske:

string str; SQLCHAR buf[500]; SQLLEN cbLeft; // #bytes remained while ((SQL_SUCCEEDED(SQLGetData(StmtHandle, colnum, SQL_C_BINARY, buf, sizeof(buf), &cbLeft)))) // ^^^^^^^ { string data(reinterpret_cast< const char* >(buf), reinterpret_cast< const char* >(buf) + cbLeft); // ^^^^^^ str = str + data;

Brug et par minutter på at gennemgå Using Length /Indikatorværdier for at kontrollere, hvordan længde/indikatorværdi bruges.




  1. Årsagen til, at Oracle skelner mellem store og små bogstaver?

  2. Ønsker ikke at mysql automatisk skal caste streng til heltal

  3. Sådan får du data tilbage fra Mysql for dage, der ikke har nogen statistik

  4. Øg kolonneværdien, hvis der findes en dubletværdi