![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
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();
}
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;}
|
|
#2
|
|||
|
|||
|
Muchas gracias
Probare a hacerlo de esa forma, usando consultas a ver si se agiliza el proceso y os comento.
Gracias de nuevo por la ayuda ![]() |
|
#3
|
||||
|
||||
|
Creo que es un código perfecto para utilizar un profiler (aquí hay algunos). Con estos programas puedes saber exactamente qué parte de tu programa es la que está tardando más tiempo. Las lecturas, algún procedimiento con strings,...
Con eso podrás saber exactamente a qué parte tienes que atacar para optimizar.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| CreateForm demasiado lento | kverna | Varios | 6 | 06-03-2008 14:32:14 |
| Procedure en Firebird lento o IbQuery lento | capo979 | Firebird e Interbase | 14 | 17-07-2007 21:35:36 |
| Demasiado lento programa | Manuel | Varios | 1 | 27-10-2005 18:10:08 |
| Proceso lento al dar enter sobre un boton | Walterdf | Varios | 1 | 05-04-2005 18:20:50 |
| Interbase demasiado lento | diegofhernando | Conexión con bases de datos | 2 | 12-09-2003 22:05:24 |
|