Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Revision en segundo plano de una tabla paradox (https://www.clubdelphi.com/foros/showthread.php?t=40940)

chrids506 02-03-2007 15:55:10

Revision en segundo plano de una tabla paradox
 
Saludos, tengo un problemita, tengo una aplicación que maneja el inventario de una bodega (de una importadora), pero necesito que mientras la aplicación se encuentre ejecutándose esta verifique la tabla de datos de productos buscando 2 cosas:
1 que la cantidad de unidades sea mayor a cero (de no ser así notificar)
2 que la cantidad de unidades sea mayor al piso (cantidad de unidades minimas establecidas al momento de agregar el producto)

quiero que esto se haga en segundo plano, pero no se como, alguna idea?


Composición de la tabla de datos: |Codigo|Nombre|Unidades|Costo|Piso|


Saludos, y gracias de antemano
Chrids

Lepe 02-03-2007 16:29:33

En segundo plano podría ser ocultandolo al usuario, por ejemplo con un timer y que se ejecute cada X segundos.

la única forma que tendrás de hacerlo es por consultas (Tquery), es lo más eficiente.

1 que la cantidad de unidades sea mayor a cero (de no ser así notificar)
Código SQL [-]
select codigo, nombre from productos where unidades <= 0
Para cada registro de esa consulta, deberás notificarlo como quieras, mediante un log, una ventanita que se abre e indica los nombres de productos, etc.


2 que la cantidad de unidades sea mayor al piso (cantidad de unidades minimas establecidas al momento de agregar el producto)
Código SQL [-]
select codigo, nombre from productos where unidades > piso
Lo mismo que antes, todos los registros que haya en esa consulta, serán los que quieres notificar.

Intuyo que no has usado un Tquery, así que pon uno en el form, establece su propiedad DatabaseName, en la propiedad sql haz clic y escribe ese código sql.

Añade un TDatasource, en su propiedad Dataset, elige el Query1.

Pon un Grid (para ver los resultados) su propiedad Datasource, que apunte a un TDatasource anterior.

Establece la propiedad Active del TQuery a true y verás los resultados incluso en tiempo de diseño.

Saludos

chrids506 02-03-2007 16:39:41

Cita:

Empezado por Lepe
Añade un TDatasource, en su propiedad Dataset, elige el Query1.

Pon un Grid (para ver los resultados) su propiedad Datasource, que apunte a un TDatasource anterior.

Establece la propiedad Active del TQuery a true y verás los resultados incluso en tiempo de diseño.

Saludos

Tiempo sin verte Lepe, me agrada que estes bien, el problema es que sigo sin saber SQL, yo me conecto asi (de mente porque no tengo el código aquí):

DataModule1.DataSource1.Table1.Database := {direción}
DataModule1.DataSource1.Table1.Data := {direción}
DataModule1.DataSource1.Table1.Active

o algo así, para hacer las busquedas uso un locate, no habrá forma de hacerlo con .first, .next y la propiedad Eof? o no es recomendable?

chrids506 03-03-2007 18:14:07

Tengo otra pregunta, que pasa si hago un while cada X segundos, la aplicación se quedaría pagada mientras termina no?

ArdiIIa 03-03-2007 18:25:19

Lo mas oportuno sería lanzar un Thread que vaya haciendo el trabajo.
En el directorio Demos\db\BkQuery tienes la aplicación BkQuery que te ilustra como hacerlo.

chrids506 03-03-2007 18:37:51

Gracias por la ayuda


La franja horaria es GMT +2. Ahora son las 12:46:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi