Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-01-2008
bsoulfly bsoulfly is offline
Registrado
 
Registrado: ene 2008
Posts: 5
Poder: 0
bsoulfly Va por buen camino
Question 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;

Responder Con Cita
  #2  
Antiguo 06-01-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código SQL [-]
         sql :='select Alumno.Id_T,Alumno.Matricula,Alumno.Nombre,Tema from alumno,trabajorecepcional where alumno.ID_T=trabajorecepcional.ID_T';
        ModuloDatos.Query1.sql.add(sql);
        ModuloDatos.Query1.Open;

Prueba así.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 08-01-2008
bsoulfly bsoulfly is offline
Registrado
 
Registrado: ene 2008
Posts: 5
Poder: 0
bsoulfly Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 09-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 09-01-2008
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
Echa un vistazo a la coneccion del DBGrid, creo que no enganchas el Query
Código Delphi [-]
ModuloDatos.DataSource1.DataSet:= ModuloDatos.Query1;
Creo
Responder Con Cita
  #6  
Antiguo 09-01-2008
Avatar de TheFlame
TheFlame TheFlame is offline
Miembro
 
Registrado: jul 2007
Posts: 12
Poder: 0
TheFlame Va por buen camino
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í:
Código SQL [-]
Select Alumno.ID_T,Alumno.Matricula,Alumno.Nombre,trabajorecepcional.Tema 
From alumno Inner Join trabajorecepcional On alumno.ID_T=trabajorecepcional.ID_T

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.
Responder Con Cita
  #7  
Antiguo 09-01-2008
bsoulfly bsoulfly is offline
Registrado
 
Registrado: ene 2008
Posts: 5
Poder: 0
bsoulfly Va por buen camino
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.
Responder Con Cita
  #8  
Antiguo 10-01-2008
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
Ejecuta esta sentencia y veras que tabla o query tiene asociado el DBGrid
Código Delphi [-]
ShowMessage(DBGrid.Datasource.DataSet.Name);
Entonces sabras si esta asociado el query que experimentas o la tabla alumnos
Por eso era de poner
Código Delphi [-]
DBGrid.Datasource.DataSet:= Query1;
Suerte.
Responder Con Cita
  #9  
Antiguo 10-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por juanlaplata Ver Mensaje
Por eso era de poner
Por lo que ya se mencionó de la referencia circular, me temo que será:
Código Delphi [-]
  Query1.DataSource := nil;
  DBGrid.Datasource.DataSet:= Query1;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 11-01-2008
bsoulfly bsoulfly is offline
Registrado
 
Registrado: ene 2008
Posts: 5
Poder: 0
bsoulfly Va por buen camino
problema resuelto

Gracias por la ayuda, ya resolvi el problema. Saludos
Responder Con Cita
  #11  
Antiguo 11-01-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por bsoulfly Ver Mensaje
Gracias por la ayuda, ya resolvi el problema. Saludos
Seria bueno que colocaras la solución para que otros compañeros con el mismo problema tengan acceso a la solución.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 11-01-2008
bsoulfly bsoulfly is offline
Registrado
 
Registrado: ene 2008
Posts: 5
Poder: 0
bsoulfly Va por buen camino
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;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta DBGrid XaSu Varios 2 31-12-2007 16:58:06
consulta de DBGrid alfil123 Conexión con bases de datos 1 08-12-2007 00:23:52
consulta y dbgrid UREÑA Conexión con bases de datos 4 15-06-2007 17:04:09
consulta con un dbgrid Renees Varios 7 28-09-2006 23:43:29
Consulta en DbGrid trex2000 Varios 1 02-03-2004 19:31:48


La franja horaria es GMT +2. Ahora son las 23:06:35.


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