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)
-   -   Busquedas multibles tablas (https://www.clubdelphi.com/foros/showthread.php?t=67175)

sisne 03-04-2010 11:20:46

Busquedas multibles tablas
 
Hola!
Quisiera que me den algunas ideas de como poder realizar el codigo en Delphi cuando estoy usando de Base de Datos SQL SERVER. en el sigte caso:
Quisiera realizar tipos de busquedas por varios campos pero de diferentes tablas, es decir:
TUniversitario:IdE,CI,NombreAlumno,Apellidos,Pais,NombreCarrera,TiempoCarrera...etc
TMateria:IdM,IdE,SiglaMateria,NombreMateria,SemesteAnual,Gestion,Calificacion,etc...
TBeca:IdB,IdE,Fecha,MontoMes, MontoTotal,etc.
....y tengo mas tablas que estan relacionadas por Tuniversitario.
Como ven las dos ultimas tablas estan relaciondas con TUniversitario por medio de IdE.
El 1ero ADOQuery1 y los otros son ADOTables(X) y estan relacionadas con MasterSource, MasterFields.....Cada tabla tiene su propia informacion, ya la introduci.
Ahora lo que quiero es realizar una busqueda simultanea por decir por medio de dos tablas o trees.
ejemplo:
Creando dos combobox, dos Tedit
Combobox: Nombres Carrera
Tedit: Juan Medicina
Y en un DBGrid1 quisiera que me aparezca la informacion "a medida que estoy escribiendo el nombre Juan y luego reduzca la informacion del DBGrid1 cuando escriba la carrera medicina"
Algun componente que pueda facilitarme? o como tendria q programarlo? Estaba colocando el sigte codigo para agrupar todos los campos:
Código:

Select U.*,M.*,B.*
From TUniversitario U, Tmateria M, Tbeca B
Where U.IdE=M.IdE and U.IdE=B.IdE

Esto para que seleccione todo los campos, lo coloque en un ADOQuery2
Pero en la busqueda como seria?
oTRA vez mas gracias por la ayuda

ElDioni 06-04-2010 16:37:43

Pues sería que en el combobox que comentas salga el nombre del field de la tabla y al escribir el valor en un edit, por ejemplo, le des a un botón filtrar, y entonces añadirla a la consulta SQL

Código Delphi [-]
adoquery2.close;
adoquery2.SQL.Text:='SELECT U.*,M.*,B.* FROM TUniversitario U, TMateria M, TBeca B WHERE U.Ide=M.Ide AND U.Ide=B.Ide AND '+combobox.text+'='+edit1.text';
adoquery2.ExecSQL;
adoquery2.Open;

Así sería a groso modo, si tienes más de 1 combobox tendrías que comprobar los que se han rellenado e ir añadiendolos a la consulta.
Espero que te sirva de algo.
Un saludo.


La franja horaria es GMT +2. Ahora son las 02:45:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi