![]() |
probla con consulta sql en dbgrid
Hola que tal,soy nuevo en el foro,siempre que tenia una duda buscaba en este foro la respuesta, pero esta vez busque y no encontre, bueno tal vez sea porque estoy mas dormido que despierto(despues de un jarabe para la tos y varias pastillas antigripales). Bueno mi problema es este, resulta que necesito realizar una consulta en sql que me deberia arrojar datos de 2 campos de la tabla alumno y 1 mas de la tabla TrabajoRecepcional, pero me muestra todos los datos de la tabla alumno. Intente con una consulta mas sencilla pero me sigue mostrando todos los datos de la tabla alumno en el dbgrid.
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; |
Prueba así. |
gracias pero no me funciona
Gracias por contestar pero no me funciono, cuando la ejecuto me sigue mostrando en la tabla todos los datos de alumno y yo solo quiero 2 campos.
|
Creo entonces que es momento que te busques un tutorial o introducción a SQL y ese pequeño problema lo resolvas vos.
Hasta luego. ;) |
Echa un vistazo a la coneccion del DBGrid, creo que no enganchas el Query
Creo |
Te recomiendo que en tus consultas en la que utilizas mas de una tabla lo hagas con las instrucciones INNER JOIN dado que es mas optimo que hacerlo con el WHERE. Tu consulta quedaría así:
Nota: En la tabla "trabajorecepcional" asumo que solo hay dos registros y que son los que quieres que se muestren, en caso contrario deberias hacer un where para obtener los dos registros que deseas. Espero haberte sido de ayuda, Saludos. |
help me
gracias TheFlame, por tomarte la molestia de responder pero creo que el problema no esta en la sentencia SQL, porque ya probe con consultas mas sencillas, ponga la consulta que ponga el resultado simpre es el mismo, no hace caso de la consulta sql y me muestra todo los registros de la tabla alumno. Juanlaplata creo que por ahi esta el error pero namas no doy y sobre el codigo que me diste lo puse y me marca un error: DataSource1:cirular datalinks no son permitidos. Tambien me dijeron que debia enlazar el DataSource en su propiedad DataSet al Query1,(pero este no me aparece)porque si lo enlazo a la tabla alumno siempre me mostraria todos los datos de alumno.
|
|
Cita:
Hasta luego. ;) |
problema resuelto
Gracias por la ayuda, ya resolvi el problema. Saludos:)
|
Cita:
Salud OS |
Solucion
Esta es la solucion, lo que pasaba esque no enganchaba el query, me faltaba esa linea de codigo:
procedure TFconsulAlumno.Button1Click(Sender: TObject); var sql:string; begin ModuloDatos.ADOconnection1.connected:=true; ModuloDatos.Tabla1.Active:=true; ModuloDatos.TrabajoRecepcional.Active:=true; if RadioButton1.Checked then Begin ModuloDatos.Query1.sql.Clear; sql:='select alumno.Matricula,alumno.Nombre, trabajorecepcional.Tema from alumno,trabajorecepcional where alumno.ID_T=trabajorecepcional.ID_T'; ModuloDatos.Query1.sql.add(sql); ModuloDatos.Query1.Active:=true; Modulodatos.DataSource1.DataSet:=ModuloDatos.Query1; Consultas.DataSource:=Modulodatos.DataSource1; end; |
| La franja horaria es GMT +2. Ahora son las 07:41:12. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi