Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   problema sencillo en una consulta (https://www.clubdelphi.com/foros/showthread.php?t=39639)

ddd_ddd 25-01-2007 21:59:39

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

ddd_ddd 25-01-2007 22:30:56

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

marcoszorrilla 25-01-2007 22:47:40

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));

ddd_ddd 25-01-2007 23:34:28

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?

marcoszorrilla 25-01-2007 23:38:19

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.

ddd_ddd 26-01-2007 00:09:47

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


La franja horaria es GMT +2. Ahora son las 08:25:39.

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