PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

libpqxx v12 - динамично обвързване на векторни стойности към подготвен израз (алтернатива на извикването)

pqxx::prepare::make_dynamic_params вероятно ще реши проблема ви. Това реши проблема ми. Използвайте този начин:

for (size_t i = 0; i < buffSize; ++i)
{
    auto element = dataBuffer.at(i);
    vector<string> vect;
    vect.reserve(3);
    vect.push_back(pqxx::to_string(element.rndNo));
    vect.push_back(element.timestamp);
    vect.push_back(element.uuid);

    work.exec_params(m_insertCommand, pqxx::prepare::make_dynamic_params(vect));
}

От версията 7.6.0 dynamic_params са отхвърлени. Вместо това могат да се използват параметри. Ето новото решение:

for (size_t i = 0; i < buffSize; ++i) 
{
    auto element = dataBuffer.at(i);
    pqxx::params;
    params.reserve(4);
    params.append(pqxx::to_string(element.rndNo));
    params.append(element.timestamp);
    params.append(element.uuid);
    params.append(); // For example insert null variable

    work.exec_params(m_insertCommand, params);
}



  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 функционира много по-бавно, когато използва входни променливи

  2. „O“ в ORDBMS:Наследяване от PostgreSQL

  3. експортиране на таблица в csv на postgres

  4. PLINQ на ConcurrentQueue не е многонишков

  5. pg gem Trace/BPT trap:грешка 5 на MAC OS X lion