sql >> Databáze >  >> RDS >> PostgreSQL

libpqxx v12 - dynamicky váže vektorové hodnoty k připravenému příkazu (alternativa k vyvolání)

pqxx::prepare::make_dynamic_params pravděpodobně vyřeší váš problém. Vyřešilo to můj problém. Použijte tento způsob:

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

Od verze 7.6.0 dynamic_params jsou zastaralé. místo toho lze použít parametry. Zde je nové řešení:

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. Funkce MySQL pro zjištění počtu pracovních dnů mezi dvěma daty

  2. cx_Oracle - Načtení knihovny DLL se nezdařilo:%1 není platná aplikace Win32. krajta

  3. Co je efektivnější – ukládání logů do SQL databáze nebo souborů?

  4. Nelze použít String jako @Id s SpringData