Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-01-2017
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Error al guardar Número Telefónico

buenas ..

Pues ese es el detalle, intento guardar en una tabla el valor de un número telefónico con el clasico código:

Código:
Table1.Open;
try
Table1.FieldByName('TEL_CL').AsInteger :=StrToInt(Edit1.Text);
finally
Table1.Post;
end;
Si guardo un valor por ejemplo: 1234567890, si lo guarda sin problema, pero si quiero agregar un valor por ejemplo: 9384568579, me envía un mensaje de error: "raised exception class EConvertError whit message "9384568579" is not a valid integer value"

El campo TEL_CL en la BD lo tengo de tipo Numérico.

Intenté de igual forma usar una variable para mayor rango de número:

Código:
Var
 TEL  : Int64;

begin
TEL: = =StrToInt(Edit1.Text)
Table1.Open;
try
Table1.FieldByName('TEL_CL').AsInteger :TEL;
finally
Table1.Post;
end;
Alguna idea por que ese valor no me lo acepta?
Responder Con Cita
  #2  
Antiguo 05-01-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.011
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues porque ese valor excede al máximo de un número entero.
Responder Con Cita
  #3  
Antiguo 05-01-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.220
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Prueba a utilizar esto:

Código Delphi [-]
  Table1.FieldByName('TEL_CL').AsString := TEL;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 05-01-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Yo usaría StrToInt64 para convertir el valor
Responder Con Cita
  #5  
Antiguo 05-01-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.011
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que habría que saber también qué tipo de integer usa la base de datos ¿access?
Responder Con Cita
  #6  
Antiguo 05-01-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.220
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Habría que aclarar:

1) Qué tipo hay en la Base de Datos y qué tipo debe ser.
2) Qué tipo de dato tiene la variable y qué tipo debe ser.
3) Cómo asignar los valores (porque si se asigna como AsInteger va a fallar).

La asignación de AsInteger usa el tipo LongInt:
Código Delphi [-]
function GetAsInteger: Longint; virtual;

Que según la ayuda está definido así:
Cita:
LongInt -2147483648..2147483647 Signed 32-bit
Habría que usar AsLargeInt, que usa LargeInt=Int64 definido como:

Cita:
Int64 -2^63..2^63-1 Signed 64-bit
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 05-01-2017
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Prueba a utilizar esto:

Código Delphi [-]
  Table1.FieldByName('TEL_CL').AsString := TEL;
Muestra "Incompatible type String and Int64"

Gracias!!
Responder Con Cita
  #8  
Antiguo 05-01-2017
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Yo usaría StrToInt64 para convertir el valor
Si lo guarda pero al consultar ese valor guarda otro datos diferente.. Por ejemplo guarde el numero 9383869090, lo guardo y al consultarlo guardo el número: 793934498
Responder Con Cita
  #9  
Antiguo 05-01-2017
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Aparte de esto, un telefono se debe guardar como texto, no solo porque hay "números" pocos usuales (ej: +71 333, o *555)

Si no porque ademas, no tiene sentido preguntar "Sacame el promedio de la columna teléfono".
__________________
El malabarista.
Responder Con Cita
  #10  
Antiguo 05-01-2017
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
Aparte de esto, un telefono se debe guardar como texto, no solo porque hay "números" pocos usuales (ej: +71 333, o *555)

Si no porque ademas, no tiene sentido preguntar "Sacame el promedio de la columna teléfono".
Muchas gracias por el consejo !! ..
Responder Con Cita
  #11  
Antiguo 05-01-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por mamcx Ver Mensaje
Aparte de esto, un telefono se debe guardar como texto, no solo porque hay "números" pocos usuales (ej: +71 333, o *555)

Si no porque ademas, no tiene sentido preguntar "Sacame el promedio de la columna teléfono".
Yo me fui a dormir reflexionando justamente sobre este tema. El que los datos "sean todos numeros" no implica que se deban almacenar en un tipo de datos numerico (mas alla de tu correcta observacion, los telefonos pueden contener caracteres no numericos), sino que la decision esta mas ligada a lo que voy a hacer con los datos.

Los numeros "estan buenos" para: identificar algo(porque las comparaciones sobre numeros son muchisimo mas rapidas que las de string), calcular sumas, promedios, estadisticas,... el string es mas "permisivo" (en realidad es super permisivo, admite cualquier cosa, el unico limite es el tamaño del campo) pero tambien tiene algo interesante, que son las busquedas parciales. Cualquier motor SQL te permite implementar busquedas con "LIKE" y esto para los telefonos en algunos casos puede ser util (ie. buscar todos los telefonos que comienzan con "0800")
Responder Con Cita
  #12  
Antiguo 06-01-2017
koalasoft koalasoft is offline
Miembro
 
Registrado: oct 2004
Ubicación: Tenosique Tabasco
Posts: 86
Poder: 20
koalasoft Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Los numeros "estan buenos" para: identificar algo(porque las comparaciones sobre numeros son muchisimo mas rapidas que las de string), calcular sumas, promedios, estadisticas,... el string es mas "permisivo" (en realidad es super permisivo, admite cualquier cosa, el unico limite es el tamaño del campo) pero tambien tiene algo interesante, que son las busquedas parciales. Cualquier motor SQL te permite implementar busquedas con "LIKE" y esto para los telefonos en algunos casos puede ser util (ie. buscar todos los telefonos que comienzan con "0800")
Efectivamente, ese tipo de búsqueda es interesante al igual que si ns piden "todas los numero locales de los móvil que inicien en "044" o "045"

Saludos !!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
guardar un numero en dos tablas Daniel10 Tablas planas 8 19-02-2013 10:35:49
como guardar un numero en la BD a travez del InputBox Nelly Varios 1 18-01-2006 21:12:59
¿Como puedo marcar un numero telefonico a travez del modem de la PC? Roger_Fernandez Varios 7 18-11-2004 15:32:54
Marcar un numero telefonico? danytorres Varios 1 26-07-2004 03:43:09
Marcar numero telefonico desde delphi agova API de Windows 1 18-03-2004 15:14:42


La franja horaria es GMT +2. Ahora son las 06:49:58.


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