FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
Dbgrid en blanco
Hola espero por favor me puedan ayudar, he estado buscando una solucion a mi problema pero ninguna de las opciones que encontre aqui me ha funcionado, aqui les va mi problema:
Tengo un formulario con un dbgrid, el cual muestra el resultado de una consulta sql, todo lo hace correctamente, el problema es que al guardar, salir o limpiar el formulario, se quedan los datos en el dbgrid. Ya probe desactivando el datasource y si lo limpia pero al hacer nuevamente la consulta no la muestra. Espero haber sido clara. Gracias P.D. conecto el dbgrid a un data source que a su vez esta conectado a un ibquery y esta a un ibdatabase y un ibtransaction. |
#2
|
||||
|
||||
Cita:
¿Con qué propósito haces la limpieza y para que te sirve? Explicanos por favor con más detalles... Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#3
|
||||
|
||||
Hola lafourcade.
Para ejemplificar supongamos que ejecutas esta simple consulta: Solo después de abierto el IBQuery verás los resultados en el DBGrid. (si no lo has abierto ya, en tiempo de diseño) Para que el DBGrid deje de mostrar los datos, basta hacer:
Ahora, si para ocultar el resultado te decidís por usar: Para que la consulta vuelva a visualizarse en el DBGrid deberás usar algo como:
Mientras el TDBGrid esté relacionado a un TDataSource a su vez relacionado a un TIBQuery activo, el DBGrid mostrará los resultados de la misma. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
||||
|
||||
Una disculpa no habia podido checar sus respuestas, para guardar los datos del formulario uso el sig. codigo:
Lo q muestra en el dbgrid son concepto y total para obtener totc lo despliego en el edit 83 yes lo q guardo, los datos del dbgrid no los guardo ya que los tengo en otra tabla. El hecho de limpiarlo es xq al entrar nuevamente al form se hace una nueva consulta y se tienen q desplegar datos nuevos. Espero haber sido clara y me puedan ayudar. Gracias Última edición por Casimiro Notevi fecha: 07-03-2011 a las 20:40:05. Razón: Poner etiquetas [dephi] |
#5
|
||||
|
||||
Hola lafourcade.
Si usas el mismo IBQuery para mostrar y guardar, los datos dejan de mostrarse en el DBGrid luego de realizar commit, ya que almacena los cambios y finaliza la transacción actual. De otro modo, si estas utilizando otro IBQuery para mostrar los datos, tendrías que abrirlo al entrar al form (OnShow por ej.) y cerrarlo despues de realizado el commit o al salir del form (OnClose por ej.). Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 08-03-2011 a las 01:14:45. |
#6
|
||||
|
||||
Cita:
Y si funciona la solucion q m diste pero mi pregunta es ¿Como hacer para q no sea necesario cerrar el Form? lo que quiero decir es q se puedan realizar las consultas sin q sea necesario cerrar el form para que las pueda mostrar. Espero explicarme bien y no ser molesta con tantas dudas. |
#7
|
||||
|
||||
Hola lafourcade.
Si no te entiendo mál, querés que el ingreso realizado se vea reflejado en el DBGrid sin tener que salir y entrar del form. Entonces tendrías que agregar lo siguiente al código donde insertas: Por que la consulta lanzada en IBQuery2 es anterior a la inserción del nuevo dato, por lo tanto no esta actualizada. (Si es necesario encapsula en un procedimiento el código donde asignas los valores a IQuery2 y llamalo en reemplazo de las dos líneas agregadas.) Si no entendí tu consulta por favor hacemelo saber, no molestas en absoluto Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 08-03-2011 a las 21:32:19. |
#8
|
||||
|
||||
hola ecfisa
mira lo q yo despliego en el dbgrid es de otra tabla llamada "creditos", y es con fines meramente informativos, ya que lo que guardo al presionar el boton, es el total de los creditos del dia, el cual se despliega en un edit. Lo que yo quiero es que al guardar, el dbgrid quede en blanco para que al realizar una nueva consulta se desplieguen los "creditos" que se otrogaron ese nuevo dia, pero siguen apareciendo los de la consulta anterior, hasta que llega a la linea donde realiza la consulta entonces si cambia. Auch creo q no m explique muy bien, sino fue asi hazmelo saber porfavor. Muchas gracias. Última edición por lafourcade fecha: 09-03-2011 a las 22:14:33. Razón: mala puntuacion |
#9
|
||||
|
||||
Hola Lafourcade, complementando (o aclarando) lo que dicen nuestros compañeros de foro, creo que en tu codigo original (donde insertas el turno) te hace falta el código para "blanquear" o cerrar la tabla...
|
#10
|
||||
|
||||
Siiiiiiiiiiiiiiiiiiiiiii
Justo estaba probando poner esa linea y si funciona Muchas gracias a todos los que me ayudaron. Por aqui nos seguiremos leyendo. |
#11
|
||||
|
||||
hola de nuevo lafourcade,
Como aporte te comento que puedes "mejorar" tu codigo de limpieza de TEdits haciendo algo como: for i := 0 to form1.ComponentCount - 1 do if form1.Components[i] is TEdit then (form1.Components[i] as TEdit).Text := ''; Lo anterior se explica asi: Linea 1) Recorres con un for la lista de componentes de tu formulario (Form1 o como se llame) Linea 2) Evaluas si el componente es un TEdit Linea 3) Si cumple con la condición entonces cambias la propiedad text del componente: text:='' o como en tu caso ejecutas un metodo Clear (Self.Components[i] as TEdit).Clear Si no quieres borrar TODOS los controles TEdit, si no solamente una parte de ellos podrias valerte d ela propiedad Tag que tienen todos los controles, asi: Para cada TEdit que tengas que limpiar, busca en el Object Inspector la propiedad Tag, que por defecto estará en cero y cambiala por cualquier valor, por ejemplo 3.. y modificas el codigo anterior con: for i := 0 to form1.ComponentCount - 1 do if form1.Components[i] is TEdit then if (form1.Components[i] as TEdit).Tag = 3 then (form1.Components[i] as TEdit).Text := ''; Por otro lado "me preocupa" que tengas un componente llamado Edit83... eso quiere decir que muy probablemente tu pantalla este llena de Edits y seria bueno que replantearas usar otro componente como un DbGrid, o un stringGrid para una captura masiva de datos... bueno no concemos tu codigo pero si nos comentas como es tu pantalla, (y si nos queda tiempo) te asesoramos... un saludo, |
#12
|
||||
|
||||
:S en realidad no son 83 de hecho ese num no se d donde salio pero tampoco son pokos, son 62 :O
por otro lado muchas gracias por tu consejo lo aplicare y lamentablemente no tengo permitido aun cargar imagenes siono subia la de mi form para que le echaras un vistazo y m dijeras q otra cosa puedo hacer. Gracias y Saludos desde Veracruz, Mexico |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema: DBGrid con tabla Paradox deja espacios en blanco. (Delphi 7) | DJerez | Conexión con bases de datos | 5 | 01-08-2008 08:06:14 |
DBGrid siempre con un registro en blanco | Alfonsoft | Conexión con bases de datos | 0 | 05-08-2007 20:51:13 |
DBGrid en blanco después de consulta SQL. | DarkByte | Conexión con bases de datos | 20 | 26-10-2005 22:45:21 |
Un negro y Un blanco | Ambar | Humor | 4 | 24-03-2004 19:13:57 |
Porque me deja en blanco el DBGrid? | judoboy | Conexión con bases de datos | 1 | 03-07-2003 10:00:56 |
|