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 07-06-2007
aramos821 aramos821 is offline
Registrado
 
Registrado: jun 2007
Posts: 4
Poder: 0
aramos821 Va por buen camino
Como usar un Query???

Hola a todos, mi nombre es Angel y estoy dando mis primeros pasos en Delphi, de lo poco que he aprendido estuve haciendo unas bases de datos con tablas paradox, pero ahora me surgio un inconveniente.......
Me pidieron que usara un query para hacer busquedas en estas tablas y la verdad no tengo la mas minima idea de como hacerlo........

No siendo mas, de antemano les agradezco.....

Ahhh, y si no es ningun problema mostrarme algun codigo, o que propiedades a cambiar seria de mucha ayuda.

Cuidense, espero su ayuda.
Responder Con Cita
  #2  
Antiguo 07-06-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Con los Query's puedes hacer consultas mediante sentencias SQL. En la propiedad SQL de este puede asignarle la sentencia (validad) que deseas. Un ejemplo mediante codigo es:
Código Delphi [-]
//Teniendo por ejemplo un Query1

Query1.Sql.Text:='Select campo1, campo2 from tabla1 where campo1=''palote''';
Query1.Open;
//Con el Open se ejecuta la sentencias
//Tambien puede usar ExecSQL, pero para sentencias diferentes a "Select..."

//Otro ejemplo dinamico es usando parametros

Query1.Sql.Text:='Select campo1, campo2 from tabla1 where campo1= :scampo';
Query1.ParamByName('scampo').AsString:=Edit1.Text;
Query1.Open;
//Como ves scampos es un parametro qeu puede asignar despues de haber puesto la consulta, el cual tomara el valor de un Edit que tengas.

Espero que esto te ayude
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 07-06-2007 a las 18:37:18.
Responder Con Cita
  #3  
Antiguo 07-06-2007
aramos821 aramos821 is offline
Registrado
 
Registrado: jun 2007
Posts: 4
Poder: 0
aramos821 Va por buen camino
No se donde utilizarlo

Gracias!!!

pero, eso donde lo escribo?????

disculpame pero no tengo ni idea
Responder Con Cita
  #4  
Antiguo 07-06-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Lo escribes donde quieras que se ejecute; en el Click de un boton, o cualquier otro evento. Eso lo decides tu.

Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 07-06-2007
aramos821 aramos821 is offline
Registrado
 
Registrado: jun 2007
Posts: 4
Poder: 0
aramos821 Va por buen camino
Aparece un error

Despues de escribirlo, me aparece un error, dice que no reconoce la comillas (") y si las quito no reconoce el (select)
Responder Con Cita
  #6  
Antiguo 07-06-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Oops, un error. Ya corregi el mensaje.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #7  
Antiguo 07-06-2007
aramos821 aramos821 is offline
Registrado
 
Registrado: jun 2007
Posts: 4
Poder: 0
aramos821 Va por buen camino
Un nuevo error

Ya la aplicación corre, pero cuando intento buscar algo, lo escribo en el edit y oprimo el boton buscar (en el cual escribi lo anterior, Query1.sql.....) pero me aparece un nuevo error, me dice "Type mismatch in expression" que estoy haciendo mal????
Responder Con Cita
  #8  
Antiguo 07-06-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
El error te lo marca porque no coinciden los tipos de datos. El campo es Integer y estas enviando VarChar (o String) o viceversa.

Si tienes un Campo de tipo VarChar, entonces debes introducir un tipo de dato similar, en este caso un String.

Código Delphi [-]
Query1.ParamByName('scampo').AsString:=Edit1.text;
Si eel campo es de tipo Integer entonces
Código Delphi [-]
Query1.ParamByName('scampo').AsInteger:=StrtoInt(Edit1.text);
Y asi....

Posicionate en la "s" donde dice AsInteger en el editor de delphi y presiona ctrl+space y veras todo los tipos que puedes usar.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #9  
Antiguo 12-06-2007
raquel raquel is offline
Miembro
 
Registrado: jun 2007
Posts: 16
Poder: 0
raquel Va por buen camino
Hola yo tengo un problema como este.
Lo que quiero es meter mas de un parametro, pongo:

Query1.Sql.Text:='Select campo1, campo2 from tabla1 where campo1= :scampo and campo2= :dcampo';

Pero me da error en la sentencia SQL. Como seria?

Gracias
Responder Con Cita
  #10  
Antiguo 12-06-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
La consulta no tiene ningún error, suponiendo que los nombres de los campos y de la tabla son correctos.
Código SQL [-]
Select campo1, campo2 from tabla1
where campo1=:scampo and campo2=:dcampo
¿Qué dice exactamente el error?

Luego tienes que pasarle cada parámetro por separado con el tipo que le corresponda a cada uno de ellos (pueden ser diferentes).
Por ejemplo:
Código Delphi [-]
Query1.ParamByName('scampo').AsString:=Edit1.text;
Query1.ParamByName('dcampo').AsString:=Edit2.text;
Responder Con Cita
  #11  
Antiguo 12-06-2007
raquel raquel is offline
Miembro
 
Registrado: jun 2007
Posts: 16
Poder: 0
raquel Va por buen camino
Si, el paso de parametros tambien lo hago

Me pone error de sintaxis near 'where scampo = '2' and dcampo= '4''

Teniendo en cuenta que 2 y 4 son los valores que he metido en las cajas de texto.
Me pone error de sintaxis y no se como hacerlo porque quiero buscar los registros que cumplen 2 condiciones.

Gracias
Responder Con Cita
  #12  
Antiguo 12-06-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Un par de cosas, pon la query "exactamente" como la tengas, porque me parece que estás usando el mismo nombre de variable que el de los campos y eso puede dar problemas.
Además si esos campos son númericos le estás pasando los valores como si fuesen texto. Tal vez tengas que sustituir "AsString" por "AsInteger".
Responder Con Cita
  #13  
Antiguo 12-06-2007
raquel raquel is offline
Miembro
 
Registrado: jun 2007
Posts: 16
Poder: 0
raquel Va por buen camino
Tenias razon, en la bd es un entero asi que probe a cambiar los tipos como dijiste pero me sigue danto el mismo error.
El codigo que uso es este exactamente:


Query1.SQL.Text := 'SELECT CLAVECOCHE WHERE BASTIDOR= :bast AND MATRICULA= :mat';
Query1.ParamByName('bast').AsInteger:=strtoint(EBASTIDOR.Text);
Query1.ParamByName('mat').AsInteger:=strtoint(EMATRICULA.Text);
Responder Con Cita
  #14  
Antiguo 12-06-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

En el query no pusiste de que tabla vas a extraer los datos. Checa lo que está en rojo:

Código Delphi [-]
Query1.SQL.Text := 'SELECT CLAVECOCHE FROM TABLA WHERE BASTIDOR= :bast AND MATRICULA= :mat';


Saludos...
Responder Con Cita
  #15  
Antiguo 12-06-2007
raquel raquel is offline
Miembro
 
Registrado: jun 2007
Posts: 16
Poder: 0
raquel Va por buen camino
Alaaaaaa pero si es verdad!!! que tonta estoy!!!! perdon

Gracias a todos
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
Quiero liberar my query para usar el mismo varias veces zcatzz Conexión con bases de datos 7 27-01-2007 23:39:45
¿liberar memoria despues de usar una Query? mrmanuel Conexión con bases de datos 25 01-11-2006 14:20:14
Como hacer referencia a un query dentro de otro query? JuanBCT SQL 2 05-09-2006 18:35:25
Archivos Temporales al usar un Query mrmanuel Conexión con bases de datos 3 05-09-2005 18:33:42
Usar el resultado de un Query ramonibk MS SQL Server 3 02-09-2004 13:54:00


La franja horaria es GMT +2. Ahora son las 11:18:29.


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