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 25-01-2007
ddd_ddd ddd_ddd is offline
Miembro
 
Registrado: sep 2005
Posts: 60
Poder: 19
ddd_ddd Va por buen camino
problema sencillo en una consulta

Tengo una tabla que se llama: Cursos, sus campos son: id_curso, Tipo(puede ser basico, intermedio, ó avanzado), fecha_inicio y fecha_fin.
en un form tengo una maskedit1(para capturar el tipo de curso), un datetimepicker1(para capturar una fecha de inicio), un datetimepicker2(para capturar la fecha de fin) y un bitbtn1(para realizar la busqueda usando una query1).
este es el codigo que tengo en el bitbtn1:
Código Delphi [-]
query1.Active:=false;
query1.SQL.Text:=('select * from Cursos where RFC_Emp='+quotedstr(maskedit1.text)+' AND Fecha_I>='+
datetostr(DATETIMEPICKER1.Date)+'
 AND Fecha_F<='+datetostr(DATETIMEPICKER2.Date));
query1.Active:=true;
if (query1.recordcount<>0)then
    begin
      Table1.Locate('Tipo',maskedit1.Text,[]);
end;
Al correrlo y presionar el bitbtn1 me aparece este error:
type mismatch in expression
Supongo que tengo algo mal en la consulta, pero que???????
Gracias por tomarse el tiempo de leer mi explicacion

Última edición por marcoszorrilla fecha: 25-01-2007 a las 22:44:13.
Responder Con Cita
  #2  
Antiguo 25-01-2007
ddd_ddd ddd_ddd is offline
Miembro
 
Registrado: sep 2005
Posts: 60
Poder: 19
ddd_ddd Va por buen camino
Si cambio la consulta asi:
Código SQL [-]
query1.SQL.Text:=('select * from Cursos where id_curso='+quotedstr(maskedit1.text)+' AND
 Fecha_Inicio>='+quotedstr(DATETOSTR(DATETIMEPICKER1.Date))+' AND
 Fecha_Fin<='+quotedstr(datetostr(DATETIMEPICKER2.Date)));
Asi no marca ningun error, pero no encuentra ningun resultado y si deberia de encontralo

Última edición por marcoszorrilla fecha: 25-01-2007 a las 22:44:29.
Responder Con Cita
  #3  
Antiguo 25-01-2007
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 [-]
query1.SQL.Text:=('select * from Cursos where id_curso='+quotedstr(maskedit1.text)+' AND
 Fecha_Inicio>='+quotedstr(FormatDateTime('mm/dd/yyyy',DATETIMEPICKER1.Date))+' AND
 Fecha_Fin<='+quotedstr(FormatDateTime('mm/dd/yyyy',DATETIMEPICKER2.Date));
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 25-01-2007
ddd_ddd ddd_ddd is offline
Miembro
 
Registrado: sep 2005
Posts: 60
Poder: 19
ddd_ddd Va por buen camino
Cita:
Empezado por marcoszorrilla
Código SQL [-]query1.SQL.Text:=('select * from Cursos where id_curso='+quotedstr(maskedit1.text)+' AND
Fecha_Inicio>='+quotedstr(FormatDateTime('mm/dd/yyyy',DATETIMEPICKER1.Date))+' AND
Fecha_Fin<='+quotedstr(FormatDateTime('mm/dd/yyyy',DATETIMEPICKER2.Date));

Me equivoqué en algo, id_curso no es lo que capturo en la maskedit1, sino que capturo el tipo de curso(basico, intermedio, o avanzado)
entonces el resultado deben de ser varios cursos.
Utilicé la consulta como dijiste(escribiste), y creo que funciona, pero luego puse dos bitbtns, uno con esta instruccion:
Código Delphi [-]
Table1.FindPrior;
y el otro con esta:
Código Delphi [-]
Table1.FindNext;
osea, para poder mostrar todos los posibles resultados que dio la consulta, con uno veo el resultado siguiente y con el otro veo el resultado anterior. El problema es que cuando doy clic en estos dos botones, me muestra todos los resultados de la tabla "Cursos" y no solo los que deberian de aparecer. Si en la maskedit1 escribí: basico, el primer resultado que me muestra si es de un curso de tipo basico, pero cuando doy clic en los botones para ver los demas resultados, me muestra de todos los tipos de cursos que tengo en la tabla, tipo basico, tipo intermedio y tipo avanzado.

Que estoy haciendo mal?

Última edición por ddd_ddd fecha: 25-01-2007 a las 23:43:49.
Responder Con Cita
  #5  
Antiguo 25-01-2007
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
Lo que tienes que visualizar es la consulta, en donde tienes filtrados los registros que has pedido.

por lo tanto
Código Delphi [-]
Query1.First;

Query1.Last;

Query1.Next;

Query1.Prior;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 26-01-2007
ddd_ddd ddd_ddd is offline
Miembro
 
Registrado: sep 2005
Posts: 60
Poder: 19
ddd_ddd Va por buen camino
CLARO!
no era necesario el componente table1. ahora me resulta obvio pero no me di cuenta hasta lo de query1.next ajjajaja, funciona de maravilla, gracias
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
Sencillo: crear button sortilodio OOP 8 20-12-2006 13:32:31
Buscar y Encontrarlo es sencillo.... anghell77 Humor 7 04-10-2006 08:40:43
ayudita please, sencillo Otei OOP 3 18-11-2005 22:25:10
Un link a firebird 1.5 (sencillo) Jorge Taveras Firebird e Interbase 1 28-04-2004 22:08:57
Reporte sencillo en Excel....please seb@ Servers 7 24-03-2004 21:46:51


La franja horaria es GMT +2. Ahora son las 00:40:27.


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