Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   consulta y dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=44749)

UREÑA 13-06-2007 20:17:04

consulta y dbgrid
 
buen dia amigos

lo que quiero hacer es lo siguiente pero no me funciona

tengo una consulta:

Código SQL [-]
begin
frm_DataModule.qry_Asig_Mat_Materia.Close;
frm_DataModule.qry_Asig_Mat_Materia.SQL.Clear;
frm_DataModule.qry_Asig_Mat_Materia.SQL.Add('SELECT * FROM MATERIA WHERE NUCLEO_FORMACION='+QuotedStr('TRONCO COMUN')+' OR CLAVE_AA= '+QuotedStr(VarToStr(lucb_AA.KeyValue)));
frm_DataModule.qry_Asig_Mat_Materia.SQL.Text;
frm_DataModule.qry_Asig_Mat_Materia.Open;
lucb_Materia.LookupField:='ID_MATERIA';
lucb_Materia.LookupDisplay:='NOMBRE_MATERIA';
end;

y quiero que el resultado me lo muestre en un dbgrid le he puesto en datasource el query que estoy utilizando pero me arroja todos los datos de mi tabla y solo quiero que me mande los de la consulta antes vista

gracias:o

poliburro 13-06-2007 22:02:52

y si mejor lo haces de esta manera?

Código Delphi [-]
  With frm_DataModule.qry_Asig_Mat_Materia Do
     Begin
           Close;
           SQL.text := 
              ' SELECT ID_MATERIA, NOMBRE_MATERIA ' +
              '    FROM MATERIA ' +
              '  WHERE NUCLEO_FORMACION = TRONCO COMUN Or '  +
              '            CLAVE_AA= ' + VarToStr(lucb_AA.KeyValue);
           Open;
    End;

De esta manera suprimiendo el asterisco por los campos que quieres visualizar no necesitas hacer nada adicional

ElDioni 14-06-2007 12:52:33

Creo que lo que te falta es:
Código Delphi [-]
frm_DataModule.qry_Asig_Mat_Materia.ExecSql;

antes del

Código Delphi [-]
frm_DataModule.qry_Asig_Mat_Materia.Open;

ElDioni 14-06-2007 12:56:38

Por cierto
 
Yo lo habria hecho así:

Código Delphi [-]
frm_DataModule.qry_Asig_Mat_Materia.Close;
frm_DataModule.qry_Asig_Mat_Materia.SQL.Text('SELECT * FROM MATERIA WHERE NUCLEO_FORMACION='+QuotedStr('TRONCO COMUN')+' OR CLAVE_AA= '+QuotedStr(VarToStr(lucb_AA.KeyValue)));
frm_DataModule.qry_Asig_Mat_Materia.ExecSQL;
frm_DataModule.qry_Asig_Mat_Materia.Open;

o si lo prefieres así:

Código Delphi [-]
frm_DataModule.qry_Asig_Mat_Materia.Close;
frm_DataModule.qry_Asig_Mat_Materia.SQL.Clear;
frm_DataModule.qry_Asig_Mat_Materia.SQL.Add('SELECT * FROM MATERIA WHERE NUCLEO_FORMACION='+QuotedStr('TRONCO COMUN')+' OR CLAVE_AA= '+QuotedStr(VarToStr(lucb_AA.KeyValue)));
frm_DataModule.qry_Asig_Mat_Materia.ExecSQL;
frm_DataModule.qry_Asig_Mat_Materia.Open;

pero como lo haces tu, a mi parecer, sobra o el add o el text, o pones una o la otra, creo que el SQL.Text no esta haciendo nada, que alguien me corrija si me equivoco

UREÑA 15-06-2007 17:04:09

gracias amigos!! ya quedo listo lo de la consulta una vez mas me han sacado de apuros espero algun dia tener la capacidad de asesorar a los demas y poder ayudarlos asi como ustedes lo hacen cada que tengo problemas una vez mas gracias!!! :D


La franja horaria es GMT +2. Ahora son las 14:54:24.

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