Ver Mensaje Individual
  #4  
Antiguo 15-05-2012
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Para saber si un registro existe o no, deberías preguntarlo directamente a la base y no recorrer cada registro y comparar.

Esta parte
Código:
//Recorro la tabla de productos con una Query para comprobar que el producto no este ya en la BD    
                while (!XDatos->QRecorreProductos->Eof)
                {
                        if (XDatos->QRecorreProductosREFERENCIA->Value == StringGrid1->Cells[0][f])
                                     existe = true;
                        XDatos->QRecorreProductos->Next();
                }
Deberías realizarla con un query que te responda si existe o no.
No conozco como hacerlo en C, pero sería algo así:
Código:
   // Ejecuto query que cuentas cuantos registros tienen referencia=[lo que busco]
   XQueryExisteDato->SQL->Text = 'SELECT COUNT(*) FROM DATOS WHERE REFERECIA='||StringGrid1->Cells[0][f];
   XQueryExisteDato->ExecSQL;

   // Si existe la cuenta será mayor a 0
   if (XQueryExisteDato->FieldByName('COUNT')->Value > 0) 
   {existe = true;}
Lo mismo deberías hacer en cada caso en el que recorres las tablas con un while.
Responder Con Cita