PDA

Ver la Versión Completa : ayuda con ordenar dbgrid


mariaesde
22-07-2008, 06:47:04
hola buenas, soy algo nueva en esto de lo foros aparte de en delphi jeje.
mi consulta era sobre ordenar un dbgridd. tengo creada una tabla y mediante sql kiero que me ordene lo que aparece en el dbgrid, lo tngo puesto q x un radiogroup segun sea x nombre o x codigo me lo ordene, xo me dice NO INDEX FOUND FIELD.... o algo asi y no se xq...


AProvexo para preguntar tb xq cuando no usaba sentencias sql elimina registros de uno en uno y aora que las uso no se xq me borra los registros de dos en dos...

MIL GRACIASSSSS

duilioisola
22-07-2008, 08:45:03
En el RadioGroup deberías poner un evento OnClick que haga más o menos lo siguiente:


Tabla.DisableControls;
Tabla.Close;
if (radiogroup.ItemIndex=0) then
Tabla.SQL.Text := 'SELECT * FROM MI_TABLA ORDER BY NOMBRE';
if (radiogroup.ItemIndex=1) then
Tabla.SQL.Text := 'SELECT * FROM MI_TABLA ORDER BY CODIGO';
Tabla.Open;
Tabla.EnableControls;

Neftali [Germán.Estévez]
22-07-2008, 08:46:48
Hola Maria. bienvenida al ClubDelphi.
Te recomiendo que cuando tengas un rato revises la Guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) de los foros.

En cuanto a la ordenación del Grid, estaría bien que explicaras un poco mejor cómo estás intentando ordenar, qué código estás utilizando y también con qué Base de Datos trabajas.
De todas formas, piensa que si modificas la consulta SQL que usas para obtener los datos, debería funcionar si problemas.

Sin orden:

SELECT * FROM TABLA1


Si se selecciona el campo nombre:

SELECT * FROM TABLA1 ORDER BY NOMBRE ASC


Si se selecciona el código:

SELECT * FROM TABLA1 ORDER BY CODIGO DESC


Cambiando la consulta y volviendo a abrir la Query debería funcionar.

El cuanto a lo del borrado suene raro. Tal vez deberías poner la consulra (SQL) que estás utilizando. :confused::confused:

mariaesde
22-07-2008, 09:09:05
copio lo que estoy poniendo vale? es que sql aun no tengo mucha base lo siento si tampoco me se explicar.

procedure TForm2.RadioGroup1Click(Sender: TObject);
begin
query1.DisableControls;
query1.Close;
if (radiogroup1.ItemIndex=0) then
query1.SQL.Text := 'SELECT * FROM bebidas ORDER BY codigobebida';
if (radiogroup1.ItemIndex=1) then
query1.SQL.Text := 'SELECT * FROM bebidas ORDER BY nombrebebida';
query1.Open;
query1.EnableControls;
end;


tengo puesto un componente rediogroup, y en este formulario tngo un query sql xq las bases de datos las tngo en un formulario DM

esto me sigue sin funcionar

X CIERTO lo de eliminar ya me funciona d campo en campo, antes eliminaba x ejemplo el 1 y se borraba el siguiente, osea dos a la vez, no staria aciendo bien algo logicamente

Neftali [Germán.Estévez]
22-07-2008, 10:45:24
esto me sigue sin funcionar


¿Esto que error te da exactamente?

¿Son tablas Paradox + BDE?

mariaesde
22-07-2008, 11:07:09
si uso tablas paradox, no me da error simplemente no me hace nada y no se si sera algo q no estoy enrutando bien o no se

duilioisola
22-07-2008, 11:07:44
Se me ocurre que no tengas unido el Grid con el Datasource correcto.

Según yo lo hubieara hecho:
- DM - TDatamodule
--- Query1
--- Datasource1.DataSet = Query1

- Form2 - TForm
--- DBGrid.Datasource = DM.Datasource1

donald shimoda
22-07-2008, 12:57:09
copio lo que estoy poniendo vale? es que sql aun no tengo mucha base lo siento si tampoco me se explicar.


De todas maneras una vez obtenido el conjunto de datos te recomiendo ordenar en el mismo grid, aunque comprendo que explicar como excede los alcances de este curso.:p:p:p