FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Uso del Timer.... estara correcto...?
Hola Amigos...
tengo una consulta.... Tengo un Timer en el Menú principal de un programa, con la siguiente configuración... Enable : True Interval: 300000 // aprox 5 minutos Al evento le puese que llamara a una función....la cual me busca si hay registros en las tablas (Algun registro que deba autorizarse) ... si las hay me muestra un mesaje tipo Messenger ... En la practica, al ingresar al sistema me muestra un mensaje (si es que se debe autorizar algun cargo...) y cada 5 min aprox.. me muestra un mensaje hasta que el cargo se autorice.... si los autorizo todos... el mensaje deja de aparecer.... (todo bien hasta el momento...) ahora mi problema es el siguiente... El sistema esta en red... en el pc1 ingrese...y lo deje en el menu principal mientras visitaba unas paginas web.... en el pc2 ingrese... agregue registros que deben autorizarse, pero despues de 10 minutos.. en el pc1 todavia no me emitia el mensaje....(sera por que estaba ejecutando otra aplicación ? o debo agregar algun código adicional ?) si alguien me puede ayudar.. please....
__________________
BlueSteel Última edición por BlueSteel fecha: 06-04-2005 a las 15:58:37. |
#2
|
|||
|
|||
Que tipo de base de datos usas?
Como haces la inserción de registros nuevos? Como haces la verificación de registros nuevos? Saludos... |
#3
|
||||
|
||||
maeyanes
Trabajo con Interbase 6, y tanta las inserción como la verificación las realizo con consulta SQL... Código para Insertar Cargo Código:
// Proceso para Almacenar los Cargos del StringGrid_Paso a la Tabla Oficial... For i:= 0 to Costos.Costos_Paso.RowCount-1 do Begin IBQ_Edit.SQL.Clear; IBQ_Edit.SQL.Add('Insert Into "Costos" ("Ord_Numero","Are_Codigo","Cos_Monto","Cos_Observacion")'); IBQ_Edit.SQL.Add('Values (:P1,:P2, :P3, :P4)'); IBQ_Edit.Params[0].AsString := IntToStr(IBQ_Select['Par_Orden']); IBQ_Edit.Params[1].AsString := Costos.Costos_Paso.Cells[0,i]; IBQ_Edit.Params[2].AsFloat := StrToFloat(Costos.Costos_Paso.Cells[2,i]); IBQ_Edit.Params[3].AsString := Costos.Costos_Paso.Cells[3,i]; IBQ_Edit.ExecSQL; End; IBT_Edit.Commit; //Actualizo la transacción... Código:
IBQ_Select.Close; IBQ_Select.SQL.Clear; IBQ_Select.SQL.Add('Select * from "Costos","Area","Privilegio"'); IBQ_Select.SQL.Add('Where "Costos"."Are_Codigo"="Area"."Are_Codigo"'); IBQ_Select.SQL.Add('And "Costos"."Cos_Vb"=0'); IBQ_Select.SQL.Add('And "Area"."Are_Codigo"="Privilegio"."Are_Codigo"'); IBQ_Select.SQL.Add('And "Privilegio"."Usu_Numero"=:Var1'); IBQ_Select.SQL.Add('Order By "Ord_Numero"'); IBQ_Select.Params[0].AsString := Sw4; IBQ_Select.Open; If IBQ_Select.RecordCount > 0 Then Mensaje; // para este mensaje utilizo el msnpoppup
__________________
BlueSteel |
#4
|
|||
|
|||
Prueba iniciando una transacción antes de cada lectura de registros...
El problema podría estar en que la parte que hace la consulta de los registros siempre usa una transacción que se inicia al momento de que se conecta a la base de datos y permanece abierta todo el tiempo y por eso las consultas no "ven" los registros nuevos... Saludos... |
#5
|
|||
|
|||
Hola a todos.
Yo tengo un programa similar al que comentas, y el amigo maeyanes tiene toda la razón, iniciando una transacción antes de leer y finalizándola al terminar, y de igual modo al escribir los datos te funcionará. En mi caso, opté por utilizar los componentes del BDE, con lo que te despreocupas del tema, ya que lo hace el solito.... Saludos. |
|
|
|