В следующем фрагменте кода объект std :: string с именем mac иногда представляет собой пустую строку (например, «"), и я хочу, чтобы подготовленный оператор обрабатывал эту переменную автоматически как null. Интересно, как это можно достичь в приведенном ниже коде. В моих попытках Google я обнаружил, что есть способ установить флаг, указывающий нулевое значение, но я не смог найти конкретный пример. Не могли бы вы привести пример для достижения этого? Thnx.Вставка NULL/пустой строки с использованием библиотеки libpqxx
try
{
mConnection->prepare("insertBulkData", mSqlInsertStmt);
pqxx::work xAction(*mConnection);
for(uint32_t i = 0; i < tList.size(); i++)
{
TCoreDTO* tCore = tList[i];
const std::string& mac = tCore->getMac();
const std::string& uuid = tCore->getUUID();
int coreNo = (int)tCore->getCoreNo();
xAction.prepared("insertBulkData")(mac)(uuid)(coreNo).exec();
}
xAction.commit();
}
catch(std::exception& pqExp)
{
//Error handling code
.....
}
Оператор Insert выглядит следующим образом:
std::string mSqlInsertStmt
= "INSERT INTO T_CORES (MAC, UUID, CORE_NO) VALUES ($1, $2, $3)";
Структура таблицы выглядит следующим образом:
CREATE TABLE IF NOT EXISTS T_CORES (
ID SERIAL PRIMARY KEY,
MAC TEXT,
UUID TEXT,
CORE_NO INT DEFAULT 0);