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

Cách lấy dữ liệu BLOB bằng Oracle ODBC

Tôi không quen với lập trình ODBC, nhưng ngay từ cái nhìn đầu tiên, một vấn đề tôi có thể thấy là bạn giả sử độ dài dữ liệu của mình bằng nhiều lần kích thước bộ đệm của bạn. Nhưng bản đọc cuối cùng không được đảm bảo trả lại chính xác 500 byte dữ liệu.

Bạn nên viết một cái gì đó như thế. Có thể:

  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;

Vui lòng dành vài phút để xem lại Thời lượng Sử dụng / Giá trị chỉ báo để kiểm tra xem giá trị chiều dài / chỉ số như thế nào được sử dụng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. So sánh hai bản ghi và chỉ hiển thị sự khác biệt

  2. Làm cách nào để chèn dấu thời gian trong Oracle?

  3. Lấy thư từ Hộp thư bằng API PL / SQL Mail_Client

  4. Không thể kết nối với Oracle bằng tns

  5. Chuỗi kết nối Oracle với at sign @ in pasword