Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2011
jerry_mdq jerry_mdq is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 18
Poder: 0
jerry_mdq Va por buen camino
Post Con Demora

Hola... Tengo una grilla que toma los datos de un Query. Al hacer Post luego de modificar los datos no encuentro la forma (Cambiando SQL del query, cerrando, refrescansdo, etc) que me muestre los cambios. Salvo que le ponga un Timer y espere 1200 y ahi si. Es como que no termina de grabar a disco los datos del registro. Alguna solución ??? Gracias.
Responder Con Cita
  #2  
Antiguo 03-05-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Query1.close, query1.open, es lo logico.
No indicas que BD usas.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 03-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
que base de datos estas usando
cuanta informacion esta grabando
que metodo estas usando para grabar
algo de codigo no vendria mal
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 03-05-2011
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Qué utilizas? Firebird, Access, Paradox, tablas planas?.

Después del Post, prueba a hacer un CLOSE y un OPEN del Query, si aparecen reflejado las modificaciones realizadas es que el Query tiene cargada la consulta y no la refresca hasta que no se cierre y re-abra. En ese caso te recomiendo que trabajes en modo caché, o con ClientDataSet, o que cierres y abras la tabla tras cada posteo o delete reposicionándote en el registro... pero una respuesta más acertada dependerá de que sepamos qué tipo de datos manejas.

Saludos.
__________________
Amar al mundo apasionadamente.
Responder Con Cita
  #5  
Antiguo 03-05-2011
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Ups... tengo que ser más rápido

Vaya... parece que la gente desenfunda rápido... ya han contestado 2 mientras yo escribía mi mensaje...
__________________
Amar al mundo apasionadamente.
Responder Con Cita
  #6  
Antiguo 03-05-2011
jerry_mdq jerry_mdq is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 18
Poder: 0
jerry_mdq Va por buen camino
Respuesta

Es verdad. No di detalles del codigo.
El tema es que edito el registro que modifico. Luego pongo

Tabla.Post;

y la grilla no se me refresca. No se que mas datos poner. La base es de Access.

Gracias.
Responder Con Cita
  #7  
Antiguo 03-05-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Dices que pones table.post, pero dices que el dbgrid esta enlazado a un query.
Me parece un master detaill, pero solo creo.
No te explicas bien.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 03-05-2011
jerry_mdq jerry_mdq is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 18
Poder: 0
jerry_mdq Va por buen camino
Problemas con grabacion

Mirá... Es Asi. Una Grilla me refleja con un select en la opcion SQL y me muestra los datos. Luego, segun el registro que este parado yo con un numero interno edito en una Tabla aparte y las modificaciones las grabo con POST. Luego al query que maneja la grilla, lo cerre, le cambie el select, lo activo y desactivo, etc. y me sigue mostrando el registro sin cambios. Ahora, si le pongo un timer en 1200 aprox, y luego de eso corro un refresco del query si se ven los cambios. Espero respuestas. Gracias.
Responder Con Cita
  #9  
Antiguo 03-05-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Copia y pega aqui el codigo que estas usando en todo este proceso.
A ver donde esta el asunto.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #10  
Antiguo 03-05-2011
jerry_mdq jerry_mdq is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 18
Poder: 0
jerry_mdq Va por buen camino
Tabla.Edit;
Tabla.FieldValues['Fecha'] := DbFecha.Text;
Tabla.FieldValues['Tipo'] := DbTipo.Text;
Tabla.FieldValues['Num_Sanitario'] := DbNum_Sanitario.Text;
Tabla.FieldValues['Num_Especie'] := ListaEspecies.KeyValue;
Tabla.FieldValues['Num_Producto'] := ListaProductos.KeyValue;
Tabla.FieldValues['Cajas'] := DbCajas.Text;
Tabla.FieldValues['Kilos_Netos'] := DbKilos_Netos.Text;

Tabla.Post;

{RefreshClick(NIL);

Timer.Enabled := True;}
Query.Close;
Query.Open;

Donde Query es de la grilla

Gracias
Responder Con Cita
  #11  
Antiguo 03-05-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bueno:
1- Nunca he usado filevalues, no se el efecto que hara.
2- como defines que el campo que editaste de la tabla corresponde a alguno del dbgrid.
3- Estas seguro que la tabla apunta a la tabla de la BD que ve el query?.
No le veo gran cosa al codigo, solo por confirmacion yo cerraria la tabla despues del post, a ver que pasa.
Tabla.post;
Tabla.close;.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 03-05-2011 a las 20:09:36.
Responder Con Cita
  #12  
Antiguo 03-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Solo por curiosidad
porque usas un query? y no usas la tabla... o es que estas mostrando solo algunos registros (los que determinas con el query) de la tabla
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #13  
Antiguo 03-05-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cita:
Empezado por oscarac Ver Mensaje
Solo por curiosidad
porque usas un query? y no usas la tabla... o es que estas mostrando solo algunos registros (los que determinas con el query) de la tabla
Hombre, que curioso eres, recuerda que la curiosidad mato al gato.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #14  
Antiguo 04-05-2011
jerry_mdq jerry_mdq is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 18
Poder: 0
jerry_mdq Va por buen camino
Hola, Uso Query porque muestro en la grilla valores de un dia determinado y aparte se combina con otras tablas. Es la mejor forma que encontre.
Te cuento que la grabacion me funciono con cerrar la tabla. Ahora me pasa como antes pero para borrar como ves en el codigo. Que hago ? Hice lo mismo y ahora me tarda en mostrar la eliminación...



begin
Tabla.TableName := 'Salidas';
Tabla.Filter := 'Contador = ' + inttostr(Query.FieldValues['Contador']);
Tabla.Active := True;
Tabla.Delete;
Tabla.Close;

Query.Close;
Query.Open;
end;
Responder Con Cita
  #15  
Antiguo 04-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
mmmm
corrigeme si me equivoco...
tu capturas informacion de un determinado dia o dias la muestras en una grilla y luego puedes eliminar, modificar, agregar mas registros verdad?

porque no haces el proceso de "actualizacion" al salir de la grilla?, eliminando primero los datos en la tabla original y luego simplemente grabas todo lo que te "queda" en el query que se muestra en la grilla
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #16  
Antiguo 04-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola

Hombre, que curioso eres, recuerda que la curiosidad mato al gato.
Saludos
tengo 7 vidas.... bueno ya me quedan como 4...
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #17  
Antiguo 04-05-2011
jerry_mdq jerry_mdq is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 18
Poder: 0
jerry_mdq Va por buen camino
El tema es asi: La grilla se relaciona con un query que tiene el select correcto, y de esa grilla yo saco el numero de registro del query de la grilla para buscar en una tabla y elimino con ese contador. El tema ahora es que con Post y close empezo a funcionar. Pero con Delete no. Se entiende lo que hago ?
La Grabación quedo asi.


Grilla.Height := 318;
BtnAgregar.Visible := true;
BtnModificar.visible := true;
BtnGrabar.visible := false;
BtnCancelar.visible := false;
Tabla.TableName := 'Salidas';
Tabla.Filter := 'Contador = ' + inttostr(Query.FieldValues['Contador']);
Tabla.Active := True;
Tabla.Edit;
Tabla.FieldValues['Fecha'] := DbFecha.Text;
Tabla.FieldValues['Tipo'] := DbTipo.Text;
Tabla.FieldValues['Num_Sanitario'] := DbNum_Sanitario.Text;
Tabla.FieldValues['Num_Especie'] := ListaEspecies.KeyValue;
Tabla.FieldValues['Num_Producto'] := ListaProductos.KeyValue;
Tabla.FieldValues['Cajas'] := DbCajas.Text;
Tabla.FieldValues['Kilos_Netos'] := DbKilos_Netos.Text;
Tabla.Post;
Tabla.Close;
If BtnMostrar.Caption = 'Salidas' Then
Begin
DbFecha.Visible := False;
DbTipo.Visible := False;
DbNum_Sanitario.Visible := False;
ListaEspecies.Visible := False;
ListaProductos.Visible := False;
DbCajas.Visible := False;
DbKilos_Netos.Visible := False;
End;
Query.Close;
Query.Open;



Y la eliminación asi:


if MessageDlg('Desea Eliminar el Registro ???', mtConfirmation, [mbyes, mbno], 0) = mrYes then
Begin
Tabla.TableName := 'Salidas';
Tabla.Filter := 'Contador = ' + inttostr(Query.FieldValues['Contador']);
Tabla.Active := True;
Tabla.Delete;
ShowMessage('El Registro ha sido Eliminado');
Tabla.Filter := '';
Tabla.Close;

Query.Close;
Query.Open;
End;

end;


Que hago mal para que la grabación la tome y la eliminación no... pero si me cambio de dia y vuelvo si. o si refresco a ls 2 segundos tambien.
Responder Con Cita
  #18  
Antiguo 04-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
sabes que se me ocurre

veo que haces un filtro a la base de datos por el numero de contador... no crees que al tener una base de datoas cada dia mas grande.. el filtro de una u otra manera demora?

lo que te recomiendo es buscar el codigo y hacerle el delete

Código Delphi [-]
 
if MessageDlg('Desea Eliminar el Registro ???', mtConfirmation, [mbyes, mbno], 0) = mrYes then
Begin
  Tabla.TableName := 'Salidas';
  Tabla.locate ('Contador', inttostr(Query.FieldValues['Contador'], []);
  Tabla.Delete;
  ShowMessage('El Registro ha sido Eliminado');
  Query.Close;
  Query.Open;
End;

esto funcionaria mucho mas rapido que un filtro
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #19  
Antiguo 04-05-2011
jerry_mdq jerry_mdq is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 18
Poder: 0
jerry_mdq Va por buen camino
Mirá, el tema es que ahora en la edicion con post y close lo toma perfecto, pero con delete no, si no espero 1 segundo no refresca...
Responder Con Cita
  #20  
Antiguo 04-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
has leido lo que te puse?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Demora en la conexión a la base de datos fxgarcia Conexión con bases de datos 6 14-11-2007 13:22:12
Demora en locate... Luis Castillo Firebird e Interbase 1 16-01-2006 17:35:44
IBDatase Insert Post Edit Post ariefez Firebird e Interbase 4 12-10-2005 01:53:04
Demora de conexión... dunia_lv Conexión con bases de datos 0 23-05-2005 19:13:37
Demora al cambiar la hora CFPA86 Varios 5 26-09-2003 20:58:27


La franja horaria es GMT +2. Ahora son las 20:41:02.


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
Copyright 1996-2007 Club Delphi