PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

libpqxx v12 - dynamicznie przypisuj wartości wektorowe do przygotowanej instrukcji (alternatywa dla wywołania)

pqxx::prepare::make_dynamic_params prawdopodobnie rozwiąże twój problem. To rozwiązało mój problem. Użyj w ten sposób:

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));
}

Z wersji 7.6.0 dynamic_params są przestarzałe. zamiast tego można użyć params. Oto nowe rozwiązanie:

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. Jak zwiększyć klucz podstawowy podczas wstawiania partii postgres COPY?

  2. Django z Postgresql, kolumna musi pojawić się w klauzuli GROUP BY lub być używana w funkcji agregującej

  3. Wartość referencyjna kolumny serii w innej kolumnie podczas tej samej INSERT

  4. Jak zainstalować PgBackRest

  5. Skrypt SQL do tworzenia skryptu wstawiania