Ir al contenido


Foto

problemas con mostrar datos en un dbgrid con un tquery


  • Por favor identifícate para responder
24 respuestas en este tema

#1 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 25 febrero 2010 - 10:34

en que parte del unit se pone el select principal a fuerzas tiene ke poner la clausa where gracias este es mi codigo quiero mostrar los datos en un dbgrid antes funcionaba bien no se ke paso gracias necesito una solucion



delphi
  1. unit Unit3;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Controls, Forms,Dialogs, StdCtrls, Grids, DB,dbtables, DBGrids, ExtCtrls, jpeg;
  7.  
  8. type
  9.   TForm3 = class(TForm)
  10.     DBGrid1: TDBGrid;
  11.     Panel1: TPanel;
  12.     Image1: TImage;
  13.     Button2: TButton;
  14.     Button1x: TButton;
  15.     Button3: TButton;
  16.     Button4: TButton;
  17.     Edit1: TEdit;
  18.     Label1: TLabel;
  19.     Panel2: TPanel;
  20.     SALIR: TButton;
  21.     Button1: TButton;
  22.     Image2: TImage;
  23.     DataSource1: TDataSource;
  24.     Query1: TQuery;
  25.     procedure SALIRClick(Sender: TObject);
  26.     procedure Button1xClick(Sender: TObject);
  27.     procedure Button2Click(Sender: TObject);
  28.     procedure Button3Click(Sender: TObject);
  29.     procedure Button4Click(Sender: TObject);
  30.     procedure Button1Click(Sender: TObject);
  31.     private
  32.     { Private declarations }
  33.   public
  34.     { Public declarations }
  35.   end;
  36.  
  37. var
  38.   Form3: TForm3;
  39.  
  40. implementation
  41.  
  42. uses  Unit4, Unit5, Unit7, unit9, Unit11;
  43.  
  44. {$R *.dfm}
  45.  
  46. procedure TForm3.Button1Click(Sender: TObject);
  47. begin
  48.     query1.close;
  49.     query1.SQL.Text:='SELECT * FROM BLIBROS where (TITULO LIKE :ptit) or (AUTOR like :paut) or (TEMA_1 like :ptem1) or (TEMA_2 like :ptem2)';
  50.     query1.Params[0].AsString:=('%'+edit1.Text+'%');
  51.     query1.Params[1].AsString:=('%'+edit1.Text+'%');
  52.     query1.Params[2].AsString:=('%'+edit1.Text+'%');
  53.     query1.Params[3].AsString:=('%'+edit1.Text+'%');
  54.     query1.Open;
  55. end;
  56.  
  57. procedure TForm3.Button1xClick(Sender: TObject);
  58. begin
  59.     form5.Edit1.Text:=query1.FieldByName('AREA').AsString;
  60.     form5.Edit2.Text:=query1.FieldByName('FOLIO').AsString;
  61.     form5.Edit3.Text:=query1.FieldByName('TITULO').AsString;
  62.     form5.Edit4.Text:=query1.FieldByName('AUTOR').AsString;
  63.     FORM5.Edit5.Text:=QUERY1.FieldByName('EDICION').AsString;
  64.     form5.edit6.Text:=query1.FieldByName('EDITORIAL').AsString;
  65.     form5.Edit7.Text:=query1.FieldByName('ISBN').AsString;
  66.     form5.edit8.text:=query1.FieldByName('PAIS').AsString;
  67.     form5.Edit9.Text:=query1.FieldByName('TEMA_1').AsString;
  68.     FORM5.Edit10.Text:=QUERY1.FieldByName('TEMA_2').AsString;
  69.     form5.ShowModal;
  70. end;
  71.  
  72. procedure TForm3.Button2Click(Sender: TObject);
  73. begin
  74.     form4.ShowModal;
  75. end;
  76.  
  77. procedure TForm3.Button3Click(Sender: TObject);
  78. begin
  79.     form7.ShowModal;
  80. end;
  81.  
  82. procedure TForm3.Button4Click(Sender: TObject);
  83. begin
  84. form11.showmodal;
  85. end;
  86.  
  87. procedure TForm3.SALIRClick(Sender: TObject);
  88. begin
  89.   Close;
  90. end;
  91.  
  92. end.


  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 25 febrero 2010 - 10:41

Y cuál es el error que te manda amigo ?

Saludox ! :D
  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 25 febrero 2010 - 10:44

Hola MariaRosina, bienvenida al foro, para poder ayudarte necesitamos saber algunas cosas.  Por ejemplo: Por que dices que no funciona? da algun error, o simplemente no muestra nada?

Otra cosa que se me ocurre de buenas a primeras es que el dbgrid en su propiedad datasource tenga a datasource1 y el datasource1 en su propiedad dataset tenga a Query1.

Pero estos son palos de ciego a menos que nos digas cual es el error.
  • 0

#4 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 25 febrero 2010 - 10:44

Saludos.

Antes que nada por favor utiliza las etiquetas necesarias para mejor compresión de tu código.

Por lo visto abres tu Select al darle Clic al botón, si el Query retorna datos debe de presentarlo, claro esta que debes de tener asociado a tu Grid un DataSource y este enlazado al Query.

Esos son los pasos a seguir para mostrar la información en un Grid, veo que haces una asignación manual a un grupo de TEdit, creo que es mejor usar DataWare y te evitas ese código.


  • 0

#5 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 25 febrero 2010 - 10:47

simplemente no muestra nada y tengo el tedit para hacer la busqueda de los datos que quiero no se ke hacer lo tengo en el tquery tengo el select principal en sql y de ahi tengo enlazado el tquery con el datasource en el data set y el datasource con el dbgrid
  • 0

#6 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 25 febrero 2010 - 10:48

Saludos.

¿Verificaste con tu herramienta CASE si el Select devuelve datos con los parámetros que solicitas?
  • 0

#7 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 25 febrero 2010 - 10:50

Hola
No entiendo por que repetir:


delphi
  1. procedure TForm3.Button1Click(Sender: TObject);
  2. begin
  3.     query1.close;
  4.     query1.SQL.Text:='SELECT * FROM BLIBROS where (TITULO LIKE :dato) or (AUTOR like :dato) or (TEMA_1 like :dato) or (TEMA_2 like :dato)';
  5.     query1.Params[0].AsString:=('%'+edit1.Text+'%');
  6.     query1.Open;
  7. end;


Si se usa el OR y se esta llamando siempre a la  comparación con el mismo edit, por que tantos parametros?.
Ademas todos son string.
Saludos
  • 0

#8 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 25 febrero 2010 - 10:52

por que no se donde esta la herramienta CASE sinceramente y segunda por que ando realizando una busqueda
  • 0

#9 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 25 febrero 2010 - 10:53

para decirte con cual herramienta debes probar lo sugerido por rolphy deberas decirnos que bd utilizas para conectarte.
  • 0

#10 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 25 febrero 2010 - 10:54

Saludos.

Herramientas CASE, es la aplicación que utilizas para diseñar tu BD (Base de Datos) donde puedes probar tus sentencias antes de ponerla en Delphi.

Un pregunta ¿A que BD estas atacando?
  • 0

#11 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 25 febrero 2010 - 10:54

ya lo pobre con parambyname oigan a todos gracias por su ayuda es de gran utilidad
  • 0

#12 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 25 febrero 2010 - 10:56

Saludos.

Entonces en ACCES prueba esa sentencia con los valores que pasas a los parámetros y así compruebas de que te esta devolviendo registros.
  • 0

#13 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 25 febrero 2010 - 11:00

no puedo entrar acces por que me marca error y me bota
  • 0

#14 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 25 febrero 2010 - 11:02

Yo sólo recomiendo en vez de usar params usar ParamByName.

Saludos.
  • 0

#15 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 25 febrero 2010 - 11:03

no puedo entrar acces por que me marca error y me bota


Porque ya tiene las BD Abierta.
  • 0

#16 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 25 febrero 2010 - 11:17

gracias ya se lo cambie gracias por todo sera de gran utilidad todos los consejos ke me dieron tampoco puedo mostrar lo pero gracias si ke esta raro mi problema
  • 0

#17 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 25 febrero 2010 - 11:41

No lo has podido hacer porque aun te falta verificar que en verdad existan registros en la BD que cumplan con la condición, tienes que ejecutar la sentencia directamente desde access a ver que sucede.
  • 0

#18 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 25 febrero 2010 - 11:48

pos si pero me marca error interno
  • 0

#19 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 25 febrero 2010 - 11:54

Hola
Si la base de datos es access y el programa es pequeño enviamelo por correo, te lo revisare con gusto.
Saludos
PD: En mi perfil esta mi correo.
  • 0

#20 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 25 febrero 2010 - 11:58

gracias cual es tu mail?
  • 0




IP.Board spam blocked by CleanTalk.