Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Pregunta sobre la funcion LOCATE()?

Que tal a todos...


Mi detalle es que cuando busco un dato con la intruccion LOCATE () pasa algo curioso :

Dataset.Locate('NOPARTE',(Dato buscado por query), [loCaseInsensitive ]);

Este me buscara en el dato esacto al que traiga el query. todo esta bien pero como le digo a dicha intruccion que verifique las mayusculas..por que resulta que en la BD tengo el registro 0125a-569 y cuando lo tengo modiico algo es esta todo bien...

Pero desbues busca este numer 0125A-569 si nos fijamos es diferente por al maayusculas en la BD no existe yo quiero que lo agregue no que me lo modifique pero como no distingue la mayuscula de la A-a por eso

Espero me haya explicado


Saludos...
Responder Con Cita
  #2  
Antiguo 15-12-2005
samantha jones samantha jones is offline
Miembro
 
Registrado: ago 2004
Posts: 46
Poder: 0
samantha jones Va por buen camino
pues... quitale el locaseinsensitive no?
Responder Con Cita
  #3  
Antiguo 15-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
No se puede tiene que llevar un parametro de ese tipo
Responder Con Cita
  #4  
Antiguo 15-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Quien sabe si tienen o existe la funcion de que me diga si es mayusculas o minusculas podria ayudarme...?
Responder Con Cita
  #5  
Antiguo 15-12-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Esto no es dificil de lograr:

Código Delphi [-]
function EsMayuscula(const s : string) : boolean;
//por jachguate
//jachguate at yahoo.com
var
  i : integer;
begin
  result := true;
  for i := 1 to length(s) do
    if s[i] <> upper(s[i]) then
    begin
      result := false;
      break;
    end;
end;

Tiene el "inconveniente" que te devolverá true si preguntas por EsMayusculas(''), lo cual ni es cierto ni deja de serlo. Te dejo la tarea de especializarla para cambiar este comportamiento si queres que sea diferente.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 15-12-2005
Migpal Migpal is offline
Miembro
 
Registrado: jul 2005
Ubicación: Colombia
Posts: 91
Poder: 19
Migpal Va por buen camino
Yo volveria los dos datos a un tipo:

1) en el select de la consulta hago el upper, select upper(campo1)

2) en el locate pongo locate('campo1',upper(text),[]);

el lopartial funciona como un like, si no le pones nada si te trae el dato exacto.
Responder Con Cita
  #7  
Antiguo 16-12-2005
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Hola.

Haz lo que te indica Samantha Jones quita iocaseinsensitive:

En vez de esto
Dataset.Locate('NOPARTE',(Dato buscado por query), [loCaseInsensitive ]);

pon esto
Dataset.Locate('NOPARTE',(Dato buscado por query), []);

Un saludo.
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 06:02:21.


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