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

Chèn đối tượng lớn nhị phân (BLOB) trong PostgreSQL bằng cách sử dụng libpq từ máy tính từ xa

Có 2 loại đốm màu trong PostgreSQL - BYTEALarge Objects . Tôi khuyên bạn không nên sử dụng các đối tượng lớn vì bạn không thể nối chúng vào bảng.

Đối với BYTEA, bạn sẽ sử dụng một cái gì đó như thế này trong libpq:

PGresult* put_data_to_tablename(
  PGconn* conn,
  int32_t id,
  int data_size,
  const char* const data
) {
  PGresult* result;
  const uint32_t id_big_endian = htonl((uint32_t)id);
  const char* const paramValues[] = { &id_big_endian, data };
  const int nParams = sizeof(paramValues) / sizeof(paramValues[0]);
  const int paramLenghts[] = { sizeof(id_big_endian), data_size };
  const int paramFormats[] = { 1, 1 }; /* binary */
  const int resultFormat = 0; /* text */

  result = PQexecParams(
    conn,
    "insert into tablename (id, data) values ($1::integer, $2::bytea)",
    nParams,
    NULL, /* Types of parameters, unused as casts will define types */
    paramValues,
    paramLenghts,
    paramFormats,
    resultFormat
  );
  return result;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres Left Tham gia với điều kiện ở đâu

  2. Cách tạo người dùng với pgAdmin

  3. học thuyết Dbal querybuilder dưới dạng tuyên bố chuẩn bị

  4. Kết xuất vào bộ nhớ CSV / Postgres

  5. Thực hiện thay đổi cấu trúc liên kết sao chép cho PostgreSQL