Pregunta: | 56321 - PROBLEMA CON LAS CONSULTAS EN UN DBGRID |
Autor: | beto soulfly |
Hola, resulta que estoy realizando un pequeño sistema en la que muestro los resultados de una consulta SQL en un dbgrid pero al realizar me muestra todos los datos de una de las tablas a las que estoy consultando(tabla alumno) cuando yo solo necesito 2 datos de esta tabla y 1 mas de la tabla(ER). Trate de realizar una consulta SQl mas simple, pero me sigue arrojando todos los campos de la tabla alumno: //sql :='SELECT Matricula,Nombre FROM alumno';
Este es mi codigo: procedure TFconsulAlumno.Button1Click(Sender: TObject); var sql:string; begin ModuloDatos.ADOconnection1.connected:=true; ModuloDatos.Tabla1.Active:=true; ModuloDatos.TrabajoRecepcional.Active:=true; Consultas.DataSource:=ModuloDatos.DataSource1; if CheckBox1.Checked then Begin ModuloDatos.Query1.sql.Clear; //sql :='SELECT Matricula,Nombre FROM alumno'; sql :='select Matricula,Nombre,Tema from alumno,trabajorecepcional where alumno.ID_T=trabajorecepcional.ID_T'; ModuloDatos.Query1.sql.add(sql); ModuloDatos.Query1.Open; end; end; |
Respuesta: | nelson |
ModuloDatos.Query1.sql.Clear;
//sql :='SELECT Matricula,Nombre FROM alumno where alumno.maticula=:matricula and alumno.nombre=:nombre'; sql :='select Matricula,Nombre,Tema from alumno,trabajorecepcional where alumno.ID_T=trabajorecepcional.ID_T'; ModuloDatos.Query1.sql.add(sql); ModuloDatos.Query1.Open; end; esto es suponiendo me supongo que lo haces mediante un edit de texto lo que hice con la clausa where es comparar los valores que tu query a buscar con el valor del edit |
Respuesta: | Luis Felipe García Gutiérrez |
Según alcanzo a apreciar faltan los join entre las tablas que se cruzan para ejecutar la consulta; es necesario que en la sentencia SQL se hagan las relaciones entre los campos comunes que permiten las asociaciones.
Mucha suerte y espero haber sido de ayuda con el aporte. |