• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 854
  • Last Modified:

Integer Overflow in DateTimeToTimeStamp function (Sysutils)

I had a problem with a program that has been widely tested, but recently, in two computers  I started getting the Integer Overflow exception at random times (I can't get a pattern) when i try to access some date routines like formatdatetime or now. Madexcept has traced the problem back to the DateTimeToTimeStamp function in SysUtils, but it´s in assembler and I don't really remember much from my asm classes to know whats happening. I've searched all over the internet for a solution or someone with a similar problem but i haven't found anything. I suspect it may be relaed to the regional settings or something like that.

Does any one have a clue about what's happening here?

This is an excerpt from the related madexcept log.


operating system  : Windows XP Service Pack 2 build 2600
processors        : 2x Intel(R) Pentium(R) 4 CPU 3.20GHz
physical memory   : 212/447 MB (free/total)
free disk space   : (C:) 35.03 GB
exception class   : EIntOverflow
exception message : Integer overflow.

Main ($980):
004574e5 +025 Station.exe SysUtils           DateTimeToTimeStamp
00457684 +01c Station.exe SysUtils           DecodeTime
007810d1 +025 Station.exe JvClock            TJvClock.GetTime
007822c7 +047 Station.exe JvClock            TJvClock.PaintTimeStr
00781701 +0ed Station.exe JvClock            TJvClock.TimerExpired
0077ff37 +01b Station.exe JvTimer            TJvTimer.Timer
00476511 +0fd Station.exe Classes            CheckSynchronize
004c9b6a +6b2 Station.exe Forms    7398 +153 TApplication.WndProc
00478360 +014 Station.exe Classes            StdWndProc
77d196c2 +00a USER32.dll                     DispatchMessageA
004ca294 +0fc Station.exe Forms    7651  +23 TApplication.ProcessMessage
004ca2ce +00a Station.exe Forms    7670   +1 TApplication.HandleMessage
004ca4ee +096 Station.exe Forms    7754  +16 TApplication.Run



Thank You
0
Dissaster
Asked:
Dissaster
2 Solutions
 
Russell LibbySoftware Engineer, Advisory Commented:

The date time is obviously getting messed up, so couple of questions.

- Are you handling the OnGetTime event, and is it possible that the date / time value is getting messed up there?
- Have you tried placing a try / except handler in the TJvClock.GetTime method to allow you to log the value that is causing the exception?

The actual cause of the exception is this:

@@1:    DIV     IMSecsPerDay

And is caused by too large a number being passed in as a date time value. Also, any place where you are enabling / disabling the clock within an event handler that might call GetTime?

Regards,
Russell

0
 
Ivanov_GCommented:
It is probably because different Regional Settings on the different computers. You can you Float (DateTime is Float) and the format it.
0

Featured Post

[Webinar] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now