sql >> Databáze >  >> RDS >> Oracle

Jak získat data BLOB pomocí oracle ODBC

Nejsem obeznámen s programováním ODBC, ale na první pohled vidím jeden problém, že předpokládáte, že délka vašich dat je násobkem velikosti vaší vyrovnávací paměti. Není však zaručeno, že se poslední čtení vrátí přesně 500 bajtů dat.

Něco takového bys měl napsat. Možná:

  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;

Věnujte prosím několik minut kontrole Použití délky /Hodnoty indikátoru za účelem kontroly délky/hodnoty indikátoru se používá.




  1. Hibernace, spojení dvou tabulek a načtení všech záznamů?

  2. Jak funguje SQLite Lower()

  3. Jak mohu dosáhnout toho, aby dotaz MySQL SUM vrátil nulu místo null, pokud neexistují žádné záznamy?

  4. Příkazy SQL Server SELECT způsobující blokování