Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-12-2008
Avatar de silver07
silver07 silver07 is offline
Miembro
 
Registrado: jul 2007
Posts: 42
Poder: 0
silver07 Va por buen camino
Question Realizar una consulta por el campo teléfono de mi tabla

Hola amigos del club delphi, estaba tratando de realizar una consulta por el campo teléfono de mi tabla de la siguiente manera (809)999-9999, pero cuando limpio el mask edit los simbolos ( ) - se limpian y ahí esta el problema, cómo puedo hacer para que me permita digitar el número de teléfono una vez presione limpiar sin que se me quiten los simbolos y no me ocasione ningún error???, o si se puede hacer la consulta del teléfono como un valor entero ej. 809999999, sin que los simbolos ( ) - aún estando el tel. registrado de esta manera (809)999-9999, sean algún problema al momento de realizar la consulta.

Muchas gracias a cualquiera que pueda darme una ayuda con esto...
Responder Con Cita
  #2  
Antiguo 05-12-2008
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
creo que era:
Código Delphi [-]
masked.editText := '';
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 06-12-2008
Avatar de Ana María
Ana María Ana María is offline
Miembro
 
Registrado: ago 2008
Posts: 40
Poder: 0
Ana María Va por buen camino
Hola, podrías crear otro campo en la tabla con el nombre NorTelefono en el cual se guardará una versión normalizada del número telefónico y podrías utilizar la siguiente función:

Código Delphi [-]
function NormalizarNumero(Cad : string) : string;
 var
 I:integer;
 TempCad : string;
  begin
   Result := Cad;
    for i := 1 to Length(Cad) do
     if not (Cad[i]in['0'..'9']) then
       begin
        TempCad := Result;
        while Pos(Cad[i], TempCad) > 0 do
        Delete(TempCad, Pos(Cad[i], TempCad), 1);
        Result:= TempCad;
       end;
  end;



y llamarla en el evento en el evento beforePost de la tabla

Código Delphi [-]
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
 Table1.FieldByName('NormTelefono').Value :=
 NormalizarNumero(Table1.FieldByName('Telefono').AsString);
end;



Y despues puedes consultar el telefono sin normalizar pasando como parámetro el numero normalizado ( permitiendole al usuario que lo escriba como quiera.


Código Delphi [-]
parametro := NormalizarNumero(Edit1.Text)


Saludos
Responder Con Cita
  #4  
Antiguo 06-12-2008
Avatar de Ana María
Ana María Ana María is offline
Miembro
 
Registrado: ago 2008
Posts: 40
Poder: 0
Ana María Va por buen camino
Mas Claro

Hice algo mal y no me funcionaron las etiquetas.
Lo repito. ( Esta técnica te da mas flexibilidad tanto a la hora de guardar como a la hora de consultar los números)

Código Delphi [-]function NormalizarNumero(Cad : string) : string;
var
I:integer;
TempCad : string;
begin
Result := Cad;
for i := 1 to Length(Cad) do
if not (Cad[i]in['0'..'9']) then
begin
TempCad := Result;
while Pos(Cad[i], TempCad) > 0 do
Delete(TempCad, Pos(Cad[i], TempCad), 1);
Result:= TempCad;
end;
end;
//la llamas en el evento BeforePost
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
Table1.FieldByName('NormTelefono').Value :=
NormalizarNumero(Table1.FieldByName('Telefono').AsString);
end;
// Y consultas pasando como parámetro el número normalizado
parametro := NormalizarNumero(Edit1.Text)
Responder Con Cita
  #5  
Antiguo 07-12-2008
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 22
pcicom Va por buen camino
Saludos Anita..

para poner las etquitetas de codigo delphi es
[ DELPHI ] contenido [ /DELPHI ]

Sin espacios despues del corchete y sin espacios al CERRAR
ejemplo:
Código Delphi [-]
Var uno:integer;
begin
    uno := 1;
end;

Cita:
Empezado por Ana María Ver Mensaje
Hola, podrías crear otro campo en la tabla con el nombre NorTelefono en el cual se guardará una versión normalizada del número telefónico y podrías utilizar la siguiente función:

Código Delphi [-]function NormalizarNumero(Cad : string) : string;
var
I:integer;
TempCad : string;
begin
Result := Cad;
for i := 1 to Length(Cad) do
if not (Cad[i]in['0'..'9']) then
begin
TempCad := Result;
while Pos(Cad[i], TempCad) > 0 do
Delete(TempCad, Pos(Cad[i], TempCad), 1);
Result:= TempCad;
end;
end;




y llamarla en el evento en el evento beforePost de la tabla

Código Delphi [-]procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
Table1.FieldByName('NormTelefono').Value :=
NormalizarNumero(Table1.FieldByName('Telefono').AsString);
end;




Y despues puedes consultar el telefono sin normalizar pasando como parámetro el numero normalizado ( permitiendole al usuario que lo escriba como quiera.


Código Delphi [-]parametro := NormalizarNumero(Edit1.Text)



Saludos
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton
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
Capturar audio desde un micrófono y convertirlo a archivos WAV El_Nasther Varios 3 02-10-2007 20:20:30
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
consulta con un campo fecha tabla paradox estebanx Conexión con bases de datos 5 24-02-2005 08:51:02
Consulta A Tabla A Un Campo No Index rtaverash Tablas planas 1 10-01-2005 07:26:54
Realizar una multiplicacion en una consulta muli SQL 2 19-06-2003 19:44:32


La franja horaria es GMT +2. Ahora son las 01:48:37.


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