PDA

Ver la Versión Completa : Llenar DbGrid sin Instrucciones SQL


CamiloU
16-01-2006, 22:39:31
Buenas tardes. Quisiera saber si es posible llenar una Dbgrid desde delphi sin instrucciones SQL y sin necesidad de utilizar el TQuery?

roman
16-01-2006, 22:47:08
Si te refieres a llenarlo a mano, la respuesta es no. Un DBGrid simplemente refleja el contenido de un DataSet. Este DataSet puede ser un Query pero hay muchísimos tipos, como son los Table y los ClientDataSet. Si explicas más lo que quieres hacer, quizá podamos ayudarte mejor.

// Saludos

ContraVeneno
16-01-2006, 23:11:45
Si, se puede, solo tienes que asiganar el dataset al dbgrid en tiempo de diseño, especificar las propiedades necesarias y listo. :D

Por lo demás, creo que maese Roman ya respondió.

CamiloU
16-01-2006, 23:25:49
De pronto escribo una barbaridad pero tratare de hacer mas especifica mi pregunta. Si tengo una dbgrid que es el resultado de una busqueda, es posible llenarla desde el mismo ciclo de comparaciones y por medio de alguna sentencia establecer que mientras la condicion se cumpla, el dbgrid adicione lineas en sus respectivos campos?

ContraVeneno
16-01-2006, 23:34:27
Como mencionó Román, el problema no esta en DBGrid. El DBGrid es una simple (¿simple? :o) representación de un Dataset. Por lo que en lugar de enfocar tu esfuerzo en el dbgrid, deberías de hacerlo en el dataset asociado a ese dbgrid.

Por lo que expones, entiendo que lo que quieres hacer es aplicar un filtro a una consulta, es decir: tengo seleccionado todo esto, pero solo quiero que se muestren estos pocos que cumplen con cierta condición. En tal caso, lo que debes hacer es aplicar esa condición o filtro desde la consulta.

jhonny
16-01-2006, 23:36:57
A ver,

Escribire lo que entendi del caso:

Tu tienes una DBGrid con ciertos datos(Resultado de una consulta) y lo que quieres es que luego de que se ejecute la consulta, hacer un ciclo comparando ciertas condiciones y cada que dichas condiciones se cumplan ir colocando un registro mas a la DBGrid.

Si es cierta mi apreciacion pues puedes hacerlo usando un TRxMemoryData de las libreria rxLib.

CamiloU
16-01-2006, 23:48:36
El problema es como lo plantea ContraVeneno. Tengo una dbgrid donde quiero que aparezcan los resultados de una selección. El proceso está bien. Los resultados los genero a un memo y no hay porblema. Me gustaría generarlos a una dbgrid para abrir consultas desde las celdas. Intente con Sql pero me ha quedado grande. Aparece toda la tabla y no lo que quiero que seleccione. Por eso pense en la posiblidad de hacerlo sin el TQuery.

Aunque se que no es el foro adecuado, anexo la instruccion en SQL para que vean el intento:
Select E.Cod_Inst, E.Nom_Inst
From Municipios as M, Colegios as E
Where M.Cod_Municipio = E.Cod_Mun
Order by Cod_Inst

A mi me parece que a esta instruccion le hace falta un parametro, que es el valor que recibo en el TEdit pero no se donde colocarla ya que intente colocarla después del Where M.Cod_Municipio = E.Cod_Mun de la siguiente manera: and E.Cod_Mun = CodMunicipio.Text y da error.

Por eso pense en tratar de llenarla si TQuery con una comparación sencilla. Disculpenme por alargarme tanto. Muchas gracias por la colaboración.

jhonny
16-01-2006, 23:54:14
Partiendo de que lo que falta es lo que dices pues deberia ser asi:


'Select E.Cod_Inst, E.Nom_Inst
From Municipios as M, Colegios as E
Where M.Cod_Municipio = E.Cod_Mun and E.Cod_Mun = "'+CodMunicipio.Text+'"
Order by Cod_Inst'

O tambien puedes usar parametros.

Asi:


'Select E.Cod_Inst, E.Nom_Inst
From Municipios as M, Colegios as E
Where M.Cod_Municipio = E.Cod_Mun and E.Cod_Mun = :Cod_mun
Order by Cod_Inst'

Configurarlo en la propiedad params como String y luego pasarle el valor del parametro al TQuery asi:


Query1.ParamByName('Cod_mun').AsString := CodMunicipio.Text;