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 05-10-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 21
weke Va por buen camino
consulta entre dos strings

Muy buenas a todos/as!!
Tengo un problemilla con una consulta, no creo que sea muy difícil, pero me he atascao y no tiro palante.
Lo que quiero es realizar una consulta en mi tabla "usuarios", en el campo "apellidos" de tal forma que mediante un formulario solicito el apellido de inicio y el apellido de fin. El resultado deseado es que me muestre todos los usuarios que estan comprendidos entre los 2 que yo le paso.
Aclaración: solo me importa la primera letra de cada apellido, es decir, si los apellidos son 'Garcia' y 'Martinez', me tiene que mostrar todos los usuarios desde la 'G' hasta la 'M' ambas incluidas.

Muchas gracias de antemano.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita
  #2  
Antiguo 05-10-2004
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Tienes que crear dos parametros en tu consulta por ejemplo ->

Código SQL [-]
size="1">Select DatosPersonales_id,DAT_Apellido + ', ' + DAT_Nombres,

From DatosPersonales.db

Where DAT_Apellido >= ApellidoDesde

and DAT_Apellido <= ApellidoHasta


luego en el evento ->

Código Delphi [-]
procedure TdmQuerys.qBuscarDatosBeforeOpen(DataSet: TDataSet);
begin
 qBuscarDatos.ParamByName('pApellidoDesde').AsString :=
  frmBuscarDatosPersonales.eApellido.Text + ' ';
 qBuscarDatos.ParamByName('pApellidoHasta').AsString :=
  frmBuscarDatosPersonales.eApellido.Text + '';
end;
donde eApellidoDesde y Hasta son dos edit en los cuales ingresas la primer letra y la última
Saludos
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
Responder Con Cita
  #3  
Antiguo 06-10-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 21
weke Va por buen camino
El límite inferior funciona correctamente, pero el límite superior no. Me explico.
Al introducir el apellido, por ejemplo 'Castro', como solo utilizo la primera letra, todos los apellidos que empiecen por esa letra van a ser mayores que 'C' y no me los muestra en la consulta.

Muchas gracias y saludos.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita
  #4  
Antiguo 06-10-2004
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Una modificación para la respuesta de Pablo Carlos:

Código Delphi [-]
procedure TdmQuerys.qBuscarDatosBeforeOpen(DataSet: TDataSet);
begin
 qBuscarDatos.ParamByName('pApellidoDesde').AsString :=
  frmBuscarDatosPersonales.eApellido.Text + ' ';
 qBuscarDatos.ParamByName('pApellidoHasta').AsString :=
  frmBuscarDatosPersonales.eApellido.Text + 'zzzzzzzzzzzzzzzzzzzzzzzz';
end;

un saludo
Responder Con Cita
  #5  
Antiguo 06-10-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 21
weke Va por buen camino
Al final lo conseguí haciendo lo siguiente:
Código:
query.SQL.Add('Where (u1.apellidos >= :pApellidoDesde and u1.apellidos <= :pApellidoHasta) OR (u1.apellidos like "'+fin+'%")');
Muchas gracias por dedicar vuestro tiempo.

Saludos.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
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


La franja horaria es GMT +2. Ahora son las 18:00:34.


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