



Escrito 11 diciembre 2013 - 09:59
Escrito 11 diciembre 2013 - 10:19
Escrito 11 diciembre 2013 - 10:55
Escrito 11 diciembre 2013 - 11:17
No comprendo... en tu base de datos tienes un campo que no acepta más que valores entre -263 a 263-1 y quieres guardar el valor 7711030301 que hasta donde veo es mucho mayor que 263-1...
Creo que no comprendí la situación...
Saludox !
Escrito 11 diciembre 2013 - 12:06
Escrito 11 diciembre 2013 - 12:56
Escrito 11 diciembre 2013 - 01:03
No comprendo... en tu base de datos tienes un campo que no acepta más que valores entre -263 a 263-1 y quieres guardar el valor 7711030301 que hasta donde veo es mucho mayor que 263-1...
Creo que no comprendí la situación...
Saludox !
Jejeje, no amiguis, el bigint es de
-2^63 (-9.223.372.036.854.775.808) a 2^63-1 (9.223.372.036.854.775.807)
Le falto pues el exponente
Saludos
Escrito 11 diciembre 2013 - 02:43
Escrito 13 diciembre 2013 - 03:27
Escrito 13 diciembre 2013 - 08:53
Gracias por responder!
Como manejo el int64??![]()
![]()
![]()
como podria manejarlo manualmente??
El campo no se puede manejar como string![]()
![]()
![]()
Escrito 16 diciembre 2013 - 04:42
Lo único que te queda (si o si) es usar un campo de tipo float:
[tt] TFloatField; // 5.0 * 10^-324 to 1.7 * 10^308[/tt]
Aunque me parece que deberías de cambiar el tipo también en la base, de otra forma habría una incompatibilidad de tipos.
Saludos
Escrito 16 diciembre 2013 - 05:22
Escrito 16 diciembre 2013 - 09:37
Vaya, releyendo veo que es MS Server... en FireBird te salvaría usar tipo Numeric(10,0) que por dentro es un Int64 y sería perfecto porque admite enteros de hasta 10 cifras (NUMERIC admite hasta 18 cifras significativas).
Escrito 16 diciembre 2013 - 06:41
Escrito 16 diciembre 2013 - 10:20
Muchachos, no tengo Delphi a mano para comprobarlo pero apostaría que el problema no es Delphi ni de la base de datos. El culpable es ADO que no tiene soporte para tipos enteros tan grandes.
Como la suite de componentes ADO debe amoldarse a diseño del "estándar" ADO no cuenta con capacidad de generar un Field capaz de almacenar el dato. Por ello es que no se verá un .AsInt64 en ADO.
No al menos en las versiones ADO y/o de Delphi que datan de antes del 2005/6; al día de hoy me extrañaría si ADO no haya evolucionado e incorporado el tipo INT64.
Si no está en posibilidad de instalar una nueva versión, se deberá emplear otra suite.
Saludos,
{ TLargeintField } Largeint = Int64; TLargeintField = class(TNumericField) private FMinValue: Largeint; FMaxValue: Largeint; procedure CheckRange(Value, Min, Max: Largeint); :::::
Escrito 17 diciembre 2013 - 07:05
¿De que año es Turbo Delphi amigo?
Muchachos, no tengo Delphi a mano para comprobarlo pero apostaría que el problema no es Delphi ni de la base de datos. El culpable es ADO que no tiene soporte para tipos enteros tan grandes.
Como la suite de componentes ADO debe amoldarse a diseño del "estándar" ADO no cuenta con capacidad de generar un Field capaz de almacenar el dato. Por ello es que no se verá un .AsInt64 en ADO.
No al menos en las versiones ADO y/o de Delphi que datan de antes del 2005/6; al día de hoy me extrañaría si ADO no haya evolucionado e incorporado el tipo INT64.
Si no está en posibilidad de instalar una nueva versión, se deberá emplear otra suite.
Saludos,
Con mi TurboDelphi usando un componente ADOtable si se tiene soporte a Int64 a través del campo TLargeInt como lo podemos ver en la unidad DB.
delphi
{ TLargeintField } Largeint = Int64; TLargeintField = class(TNumericField) private FMinValue: Largeint; FMaxValue: Largeint; procedure CheckRange(Value, Min, Max: Largeint); :::::
Saludos
Escrito 17 diciembre 2013 - 07:37
Escrito 17 diciembre 2013 - 08:48
Hola
Tengo Delphi 7 y aunque no tengo SqlServer pude verificar que en los componentes ADO si existe el tipo de dato largeint.
Escrito 17 diciembre 2013 - 09:02
¿De que año es Turbo Delphi amigo?
Por algo he dicho: tengo mis dudas de si alguna versión tanto de ADO como de Delphi anterior al 2006 tiene el soporte hacia Int64.
Si alguien con una versión anterior puede darle una miradita para corroborar mis sospechas
Saludos,
Escrito 17 diciembre 2013 - 10:21
Pues esto me da la pista entonces de que hay algo en ADO, y en la versión de Delphi que está empleando abraham85 que no es capaz de generar el TLargeIntField por defecto como para que se deba recurrir a un cast indirecto.
¿De que año es Turbo Delphi amigo?
Por algo he dicho: tengo mis dudas de si alguna versión tanto de ADO como de Delphi anterior al 2006 tiene el soporte hacia Int64.
Si alguien con una versión anterior puede darle una miradita para corroborar mis sospechas
Saludos,
Aunque ya ha contestado Gustavo que si existe en versiones anteriores a D2006, sí, Turbo Delphi es un extracto del RAD Studio 2006 que si recuerdas fué cuando Borland decidió separar los IDE's de su portafolio y creó a CodeGear para la transición.
Saludos