unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Controls, Forms,Dialogs, StdCtrls, Grids, DB,dbtables, DBGrids, ExtCtrls, jpeg; type TForm3 = class(TForm) DBGrid1: TDBGrid; Panel1: TPanel; Image1: TImage; Button2: TButton; Button1x: TButton; Button3: TButton; Button4: TButton; Edit1: TEdit; Label1: TLabel; Panel2: TPanel; SALIR: TButton; Button1: TButton; Image2: TImage; DataSource1: TDataSource; Query1: TQuery; procedure SALIRClick(Sender: TObject); procedure Button1xClick(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation uses Unit4, Unit5, Unit7, unit9, Unit11; {$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); begin query1.close; query1.SQL.Text:='SELECT * FROM BLIBROS where (TITULO LIKE :ptit) or (AUTOR like :paut) or (TEMA_1 like :ptem1) or (TEMA_2 like :ptem2)'; query1.Params[0].AsString:=('%'+edit1.Text+'%'); query1.Params[1].AsString:=('%'+edit1.Text+'%'); query1.Params[2].AsString:=('%'+edit1.Text+'%'); query1.Params[3].AsString:=('%'+edit1.Text+'%'); query1.Open; end; procedure TForm3.Button1xClick(Sender: TObject); begin form5.Edit1.Text:=query1.FieldByName('AREA').AsString; form5.Edit2.Text:=query1.FieldByName('FOLIO').AsString; form5.Edit3.Text:=query1.FieldByName('TITULO').AsString; form5.Edit4.Text:=query1.FieldByName('AUTOR').AsString; FORM5.Edit5.Text:=QUERY1.FieldByName('EDICION').AsString; form5.edit6.Text:=query1.FieldByName('EDITORIAL').AsString; form5.Edit7.Text:=query1.FieldByName('ISBN').AsString; form5.edit8.text:=query1.FieldByName('PAIS').AsString; form5.Edit9.Text:=query1.FieldByName('TEMA_1').AsString; FORM5.Edit10.Text:=QUERY1.FieldByName('TEMA_2').AsString; form5.ShowModal; end; procedure TForm3.Button2Click(Sender: TObject); begin form4.ShowModal; end; procedure TForm3.Button3Click(Sender: TObject); begin form7.ShowModal; end; procedure TForm3.Button4Click(Sender: TObject); begin form11.showmodal; end; procedure TForm3.SALIRClick(Sender: TObject); begin Close; end; end.
problemas con mostrar datos en un dbgrid con un tquery
#1
Escrito 25 febrero 2010 - 10:34
#2
Escrito 25 febrero 2010 - 10:41
Saludox !
#3
Escrito 25 febrero 2010 - 10:44
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.
#4
Escrito 25 febrero 2010 - 10:44
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.
#5
Escrito 25 febrero 2010 - 10:47
#6
Escrito 25 febrero 2010 - 10:48
¿Verificaste con tu herramienta CASE si el Select devuelve datos con los parámetros que solicitas?
#7
Escrito 25 febrero 2010 - 10:50
No entiendo por que repetir:
procedure TForm3.Button1Click(Sender: TObject); begin query1.close; query1.SQL.Text:='SELECT * FROM BLIBROS where (TITULO LIKE :dato) or (AUTOR like :dato) or (TEMA_1 like :dato) or (TEMA_2 like :dato)'; query1.Params[0].AsString:=('%'+edit1.Text+'%'); query1.Open; 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
#8
Escrito 25 febrero 2010 - 10:52
#9
Escrito 25 febrero 2010 - 10:53
#10
Escrito 25 febrero 2010 - 10:54
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?
#11
Escrito 25 febrero 2010 - 10:54
#12
Escrito 25 febrero 2010 - 10:56
Entonces en ACCES prueba esa sentencia con los valores que pasas a los parámetros y así compruebas de que te esta devolviendo registros.
#13
Escrito 25 febrero 2010 - 11:00
#14
Escrito 25 febrero 2010 - 11:02
Saludos.
#15
Escrito 25 febrero 2010 - 11:03
no puedo entrar acces por que me marca error y me bota
Porque ya tiene las BD Abierta.
#16
Escrito 25 febrero 2010 - 11:17
#17
Escrito 25 febrero 2010 - 11:41
#18
Escrito 25 febrero 2010 - 11:48
#19
Escrito 25 febrero 2010 - 11:54
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.
#20
Escrito 25 febrero 2010 - 11:58