FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
DBGrid1.Free como re-obtener DBGrid1 ?
Hola amigos,
ando investigando como vaciar de data un DBGrid de manera expedita. DBGrid1.Free lo hace, pero luego como volverlo a obtenener vacio de data? Como se restaura? Free, en este caso, que hace? DBGrid1.Clear parece que en Lazarus no hace nada. Que hace Clear en Delphi? O, alternativamente, como vaciar de data a DBGrid1? Estoy en Windows 7 usando Lazarus de 32 bits. Gracias de antemano. |
#2
|
||||
|
||||
Bueno, un dbgrid no hace otra cosa que reflejar los datos de un dataset. Vaciarlo significa una de dos: desconectarlo del dataset (asignando su datasource a nil), o bien vaciando el dataset, esto es, la tabal asociada. Como ves, son dos cosas muy distintas. ¿Qué es lo que tu quieres?
// Saludos |
#3
|
|||
|
|||
Cita:
Desconectarlo, no me funciona, porque al conectarlo de nuevo, se muestra de nuevo la data. Gracias. |
#4
|
||||
|
||||
No recuerdo si hay un método específico para eso. Creo que sólo con el componente TTable, que tiene el método EmptyTable. Si no, tendrías que hacer una consulta SQL directo sobre la tabla que alimente tu dataset, algo así como:
que borra todos los registros. // Saludos |
#5
|
|||
|
|||
En la base de datos, no quiero cambios fijos. Solo quiero que el dataset este vacio antes de mandar un Query.
Me encontre esto apenas: Código:
var ds : TSomeDataSet begin ds.First; while NOT ds.Eof do begin if TRUE then ds.Delete; ds.Next; end; end; A mi me parece que si y (lo voy a tratar al rato) relacionando esto: sqlquery1.DataSource.DataSet.delete; con el codigo arriba citado. Gracias. Última edición por ElMug fecha: 09-08-2012 a las 04:07:51. |
#6
|
||||
|
||||
Hola ElMug.
No conozco el componente dataset de Lazarus, pero si es similar al TSQLQuery podrías lanzar una sentencia SQL como te menciona roman. Con un TSQLQuery sería:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Cita:
(*) Esto lo digo porque no toda consulta SQL es modificable, es decir, una consulta SQL deuelve un conjunto de registros pero no necesariamente podemos editar o borrar estos registros a partir del componente. Aunque creo que te falta explicar con mayor claridad lo que quieres hacer, creo que lo que deseas hacer, corresponde, en realidad, a cerrar el SQLQuery:
// Saludos |
#8
|
||||
|
||||
Supongo que, al igual que en delphi, dataset es la clase base de todos los components de acceso a datos. SQLQuery sería un de sus derivados.
// Saludos |
#9
|
|||
|
|||
Hola amigos,
Una manera de vaciar el dataset es mandar un query de select que retorne NADA. El problema es si se va a hacer por codigo, tal vez hay que hallar un query que lo haga. Si se hace manual, ya corriendo el programa, se llena una frase con algo que garantice que no califca el query. Por ejemplo, para Empleado "Salario = 0.001". O tal vez un query a una tabla que no existe, con un nombre muy remoto, como "Select * from sdfasdu2cc42 where ..." Esto, si trabaja, si se puede codificar, creo. |
#10
|
||||
|
||||
Cita:
A ver... por vaciar el dataset yo interpreto borrar sus datos, pero si lo que deseabas era realizar una consulta vacía ("que retorne NADA"), basta con hacer:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 13-08-2012 a las 19:05:47. Razón: ortografía |
#11
|
|||
|
|||
Cita:
Esto se me ha ofrecido para rodearle a un bug que creo que se relaciona con algun(os) componentes base (creo que el DBGrid) de Lazarus, y no lo pude solucionar. Tampoco vaciar el dataset me resolvio el problema. Algo dificil de explicar, y ya lo ando resolviendo usando otros componentes. Gracias! |
#12
|
||||
|
||||
Cita:
Cita:
¿Difícil de explicar?, ¿otros componentes? |
#13
|
||||
|
||||
Cita:
que regresa un resultado vacío sin tener que referirse a una base o tabla específica. // Saludos |
#14
|
||||
|
||||
Cita:
En firebird se puede hacer que devuelva cero registros indicando alguna tabla del sistema:
No es lo mismo |
#17
|
||||
|
||||
Sí, lo admite, pero para otra cosa, fíjate en el ejemplo:
EDITO: se me adelantó egostar |
#18
|
||||
|
||||
¡Qué curioso! ¿Cuántos registros devuelve? ¿O es infinito?
// Saludos |
#20
|
|||
|
|||
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Dbgrid1, como saber asignarle la ubicacion del cursor? | asdbernardo | Conexión con bases de datos | 4 | 09-10-2011 21:29:24 |
dbgrid1 | shoulder | Varios | 12 | 18-11-2009 17:36:02 |
Como actualizar Free Pascal | felipe88 | Lazarus, FreePascal, Kylix, etc. | 8 | 10-11-2008 16:58:14 |
DBGrid1 en Memo1 | gsilvei | Varios | 1 | 09-12-2006 15:06:12 |
¿¿¿DBGrid1.FixedCols := n;??? | Sergio J. | Varios | 2 | 02-12-2005 10:28:31 |
|