Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-07-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Consulta con delphi

Tengo la siguiente duda; voy a hacer un programita que me va a mostrar los datos de una tabla de una base de datos, yo voy a escribir una cadena, y despues voy a presionar un boton que dice 'inicia con', 'contiene en' o 'todo'; y la funcion en seudocodigo esta asi:

funcion muestra_datos (nombre_tabla, nombre_campo, cadena, todo_parte_inicia) // donde todo_parte_inicia es un numero entero, es 0 si quiero buscar la cadena exacta, es 1 si quiero saber cuantos registros contienen esa cadena en cualquier lugar, y 2 si quiero que inicien con esa cadena.

inicia
si todo_parte_inicia = 0 entonces
consulta = select * from nombre_tabla where campo= cadena
else
si todo_parte_inicia = 1 entonces
consulta = no se
termina


Como puedo hacer esa consulta?
Responder Con Cita
  #2  
Antiguo 25-07-2006
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 Delphi [-]
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * From '+QuotedStr(MiTabla));

Case Todo_Parte_inicia of
0:Query1.Sql.Add('Where Campo = '+QuotedStr(Cadena));
2:Query1.Sql.Add('Where Campo Like % '+QuotedStr(Cadena+'%'));
end;

Query1.Open;

If Todo_Parte_inicia = 1 then
ShowMessage(IntToStr(Query1.RecordCount));


Solamente es una aproximación.

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
  #3  
Antiguo 26-07-2006
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Aclaración

Hola a todos, la solución propuesta está buena pero creo que trabajaría mejor si en el nº 2 del Case en lugar de la sentencia propuesta usaramos:
Código Delphi [-]
Query1.Sql.Add('Where Campo Like '+QuotedStr('%'+Cadena+'%'));
La propuesta creo que da error.
Espero valga la aclaración.
Saludos
Responder Con Cita
  #4  
Antiguo 26-07-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Gracias

Gracias por sus respuestas y por su ayuda.

Voy a probar con lo que me estan dando y de nuevo por aqui les aviso como salieron las cosas.

MUCHAS GRACIAS POR TODO !!!!
Responder Con Cita
  #5  
Antiguo 26-07-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Error en la sintaxis

Aparece un error en la sintaxis,

Código Delphi [-]
Query1.Sql.Add('Where Campo Like % '+QuotedStr(Cadena+'%'));

y tambien en :
Código Delphi [-]
Query1.Sql.Add('Where Campo Like '+QuotedStr('%'+Cadena+'%'));


sabe alguien como debe ser?

quiero que la consulta me regrese los registros en donde el campo inicie con la cadena que yo le escribo, y tambien quiero otra consulta que me regrese los registros en donde la cadena que yo escriba se encuentre al principio, en medio o al final del campo.

GRACIAS POR SU ATENCION Y AYUDA

Última edición por zvf fecha: 26-07-2006 a las 21:29:52.
Responder Con Cita
  #6  
Antiguo 26-07-2006
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
Pues todo me hace pensar que no estás utilizando Paradox, quizás Access, en este último caso substituye el comodín % por *

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
  #7  
Antiguo 26-07-2006
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
Que error te da en el segundo codigo?? No enteino por que te da error, si está bien el código.

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
  #8  
Antiguo 26-07-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Estoy usando componentes zeos, y mi base de datos esta hecha en mysql.
Me marca error en el siguiente codigo:

Código Delphi [-]
 
Query1.Sql.Add('Where `nombre` Like '+QuotedStr('*'+Cadena+'*'));

Responder Con Cita
  #9  
Antiguo 26-07-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Ya Lo Solucione

Ya estuvo, tuve que ponerlo asi:

Código Delphi [-]
Query1.Sql.Add('Where `nombre` Like '+#39 + '%'+Cadena+'%'+ #39 +';');

No se porque no funcionaba como ustedes me decian.

Bueno, MUCHAS GRACIAS POR TODO
Responder Con Cita
  #10  
Antiguo 26-07-2006
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
Habrá sido por el punto y coma ==>';'

Me intriga, pues no veo razón del fallo.
__________________
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
  #11  
Antiguo 26-07-2006
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
AAh
Cita:
Me marca error en el siguiente codigo:
Código Delphi [-]
Query1.Sql.Add('Where `nombre` Like '+QuotedStr('*'+Cadena+'*'));
Escribe aquí el error que te dá.
__________________
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
  #12  
Antiguo 27-07-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Sabes que?

Si era el ;, ya lo probe y si funciona como ustedes me dijeron.

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
Consulta Delphi 6, Delphi 2005 y Delphi 2006 Leviatan Varios 6 18-08-2007 16:02:08
Consulta Delphi-PostgreSQL Leviatan Conexión con bases de datos 1 18-07-2006 02:32:07
consulta de actualizacion en delphi 7 mario_argentino SQL 3 30-01-2006 17:42:21
Consulta Sencilla SQL + Delphi Maury Manosalva SQL 4 08-09-2005 11:17:47
Consulta SQL de interbase con delphi 7 Durbed Conexión con bases de datos 2 24-11-2004 15:08:31


La franja horaria es GMT +2. Ahora son las 23:42:08.


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