Проблема с многопоточным соединением SDK клиента Informix C++C++

Программы на C++. Форум разработчиков
Anonymous
Проблема с многопоточным соединением SDK клиента Informix C++

Сообщение Anonymous »

Я разрабатываю многопоточное приложение, которое должно подключаться к базе данных Informix.
Я работаю с библиотеками CSDK 4.50 и C++.
Я' Возникли проблемы с подключением. Я не нашел способа инициализировать разные соединения для каждого потока.
вот простой фрагмент кода для репликации моих проблем

Код: Выделить всё

int main(int argc, char *argv[])
{
const constexpr int nthreads = 10;
std::thread t[nthreads];

for (int i = 0; i < nthreads; ++i) {
t[i] = std::thread(printArt, i);
}

for (int i = 0; i < nthreads; ++i) {
t[i].join();
}

return 0;
}

void printArt(int i)
{
ITDBInfo dbinfo;
dbinfo.SetDatabase("eda");

ITConnection conn;
conn.Open(dbinfo)

if (conn.Error()) {
return;
}

conn.SetTransaction(ITConnection::Begin)

ITCursor cursor(conn);

if (!cursor.Prepare("select first 1 * from a_table;")) {
conn.SetTransaction(ITConnection::ABORT);
return;
}

if (!cursor.Open()) {
conn.SetTransaction(ITConnection::ABORT);
return;
}

ITRow* row = nullptr;
while ((row = cursor.NextRow()) != nullptr) {
string col0 = row->Column(0)->Printable().Data();
string col1 = row->Column(1)->Printable().Data();

cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78667272/informix-c-client-sdk-multi-thread-connection-issue[/url]

Вернуться в «C++»