Hi
We are upgrading our servers from Windows 2003 to Windows 2008 and Domino from 6.5 to 8.5. All 64 bit.
We now have an issue with an agent that runs on the servers at this line:
If Not oResult.RecordCount = 0 Then
From what I’ve learned the OLEDB driver for SQL Server is now returning a 64 bit datatype ‘LONGLONG’ for the recordcount property while the lotusscript ‘0’ is a 32 bit datatype ‘LONG’ resulting in a type mismatch.
Does anyone know how to solve this? Is there a way to get lotusscript in 64 bit or the other way around?
Thanks in advance,
Ken
Subject: Workaround
In this case, you can use « If oResult.EOF Then » instead.
There’s a dire need for a 64-bit integer type in LotusScript, but I fear IBM is not going to bring any improvement to LS, as focus has shift elsewhere.
Also noteworthy, you can use the Currency data type for 64-bit API calls that make use of 64-bit integer data.
You just need to adjust the value: divide it by 10000 before your store it, and multiply it by 10000 after you get it back.
Example:
Declare Function GlobalMemoryStatusEx Lib “kernel32” (c As Currency) As Long
Function GetMemWindows As Long
'Retrieve the amount of memory (RAM) installed on this computer in MB
Dim memstatus(8) As Currency
memstatus(0) = Len(memstatus(0)) * (Ubound(memstatus)-Lbound(memstatus)) / 10000
If GlobalMemoryStatusEx (memstatus(0)) Then
GetMemWindows = memstatus(1) * 10000 / 2^20
End If
End Function