[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Sending a Global Variable from MS-Access-97 to a very simple system is failing.


  • To: omega-list@xxxxxxxxxx
  • Subject: Re: Sending a Global Variable from MS-Access-97 to a very simple system is failing.
  • From: Dmitri Bogucharsky <db_@xxxxxxxxxx>
  • Date: Thu, 23 Aug 2007 19:18:01 -0700 (PDT)

PureBytes Links

Trading Reference Links

John,

Looks like you have exceed the storage unit of two bytes that is reserved for the value of the Integer type. Try to use Long instead.

Regards,
DB


----- Original Message ----
From: John Bowles <johnbowles@xxxxxxxxxxxx>
To: Omega List <omega-list@xxxxxxxxxx>
Sent: Thursday, August 23, 2007 9:23:25 AM
Subject: Sending a Global Variable from MS-Access-97 to a very simple system is failing.

Hi,

I am doing a simple test using Global Variables 2.2 which is failing.
Maybe someone knows the trick to this and could help.
I list what works then what fails below.
Then I show the simple bare bones code.

This works:
I can set the value inside the simple system with GV_SetInteger.
I can get the value back inside the simple system with GV_GetInteger
(see below)

This works:
I can set the value inside MS-Access with GV_SetInteger.
I can get the value back inside MS-Access with GV_GetInteger
(see below)

This fails:
I am trying to set an integer inside MS-Access-97
then bring that value into a simple test system.
It gives me the message
Trying access at data to future. Bars Reference value : -65516
The log file (see below) shows that the value coming in is -65516

Of note, the path to the DLL is correct since the internal tests work.
The paths are exactly the same in the system and in MS-Access.
Of note, I try "byRef" in MS-Access and it fails inside MS-Access.

Thanks,
John.

=======================================================
Part of the Simple system
=======================================================
variables:
    SetGetValue(0);

if CurrentBar = 1 then
    Begin
     DefineDLLFunc:  "C:\ProperPath\GlobalVariable.dll", int, 
"GV_GetInteger", int ;
     DefineDLLFunc:  " C:\ProperPath\GlobalVariable.dll ", int, 
"GV_SetInteger", int, int ;
     {value1 = GV_SetInteger( 1, 5 ) ;} {Internal test commented out}
     SetGetValue = GV_GetInteger( 1 ) ;
     Print (File("C:\Access\ALog55.txt"), SetGetValue);
    end;


=======================================================
MS-Access Code
=======================
============

Private Declare Function GV_GetInteger Lib 
"C:\ProperPath\GlobalVariable.dll" _
                                       (ByVal intElementLoc As Integer) 
As Integer
Private Declare Function GV_SetInteger Lib 
"C:\ProperPath\GlobalVariable.dll" _
                                       (ByVal intElementLoc As Integer, 
ByVal intSetValue As Integer) As Integer

Private intStatus As Integer


Private Sub fldBV_Upper_AfterUpdate()
     Call funcGetIntegerWorks2
End Sub


Private Function funcGetIntegerWorks2()
    Dim SetGetValue As Integer:   SetGetValue = Me.fldBV_Upper
    Dim intEleLoc As Long :   intEleLoc = 1   'I tried integer here but 
it fails internally within MS-Access.
                                                                    'I 
tried hard coding a 1 in the GV_SetInteger call but the result is the same

    intStatus = GV_SetInteger(intEleLoc, SetGetValue)
    If intStatus = -1 Then
        MsgBox "GV_SetInteger failed with status = " & intStatus
    End If
    MsgBox "GV_GetInteger returned this value " & GV_GetInteger(intEleLoc)
End Function