У меня есть мой код функционируя в C ++ и Qt 5.13.1 Mingw32 Мой код присоединяется в Sqlite3 и удаленная база данных (совсем внутри той же сети) С sqlite3 нет проблемы и до определенной степени с MySQL также, проблема приходит, когда я пробую регистрировать данные внутри удаленной таблицы (один за другим), от случая к случаю не регистрирует всех данных, иногда, если, иногда меньше. редкая проблема. Ajunto код, который дает мне проблемы:
local->prepare("SELECT * FROM ProductosVendidos");
local->exec();
if( local->first() ){
do{
query->clear();
query->prepare( "INSERT INTO ProductosVendidosR(Folio, Producto, Codigo, Cantidad, PrecioUnitario, Total, PrecioCompra, Terminal) "
"VALUES(:Folio, :Producto, :Codigo, :Cantidad, :PrecioUnitario, :Total, :PrecioCompra, :Terminal)" );
query->bindValue( ":Folio", local->value(0).toString() );
query->bindValue( ":Producto", local->value(1).toString() );
query->bindValue( ":Codigo", local->value(2).toString() );
query->bindValue( ":Cantidad", local->value(4).toString() );
query->bindValue( ":PrecioUnitario", ceros( local->value(3).toString() ) );
query->bindValue( ":Total", ceros( local->value(5).toString() ) );
query->bindValue( ":PrecioCompra", ceros( local->value(6).toString() ) );
query->bindValue( ":Terminal", myName );
query->exec();
}while( local->next() );
}
Где помещение соединено в нее sqlite3 и query в удаленного MySQL. Проблемы связи я не думаю, так как, присоединяет ли он, проблема приходит, захотев зарегистрировать, aveces регистрирует 3 иногда 10 иногда 7 всегда в случайном способе и редко 10 реестров, которые у меня есть (даже сейчас, из-за которого всегда они будут больше). Все это эта внутри трэда, который функционирует хорошо, и на втором плане чтобы не соединять приложение.
query->exec()
возвращает тебе booleano, который позволяет тебе знать, работало ли решение SQL правильно.
Вместо того, чтобы игнорировать результат, deberГ-туз обслуживать это и, в случае когда оно находить проблему, показывать ошибку и(или) действовать последовательно:
if( !query->exec() )
{
QSqlError error = query->lastError();
qDebug() << error.text();
}