Cita:
|
Empezado por aledieb
Como creas los query, porque por cada thread tenes que crear la consulta, a ver si me explico mejor, tenes que crear dentro del thread el TQUERY o componente que uses con su correspondiente transaction.
Espero que me entiendas
Suerte
|
Muchas gracias por el Tip, pero sucede exactamente lo mismo, aun cuando sea creado cada elemento en el Thread de forma dinamica.
El de Conexion a la Base de Datos ( Cada Thread con su conexion), la Transaccion, y el Query.
En la Creacion:
Código:
IBDatabase =new TIBDatabase(NULL);
IBDatabase->DatabaseName="DBX.FBD";
IBDatabase->Params->Add("user_name=SYSDBA");
IBDatabase->Params->Add("password=masterkey");
IBDatabase->LoginPrompt=false;
IBTransaction = new TIBTransaction(NULL);
IBTransaction->DefaultDatabase = IBDatabase;
IBTransaction->Params->Add("write");
IBTransaction->Params->Add("consistency");
IBQuery = new TIBQuery(NULL);
IBQuery->Transaction = IBTransaction;
IBQuery->Database = IBDatabase;
IBQuery->SQL->Add("select * from TableX");
Execucion:
Código:
void __fastcall TTest::Execute()
{
IBDatabase->Connected=true;
while(!Terminated)
{
try{
IBTransaction->StartTransaction();
IBQuery->Open();
IBTransaction->Commit();
Sleep(1);
}
catch (Exception &exception)
{
}
}
}
Cuando se crea el Segundo Thread sucede el Congelado.