PA_GetVariable


version 2003


PA_GetVariable (vName) → PA_Variable

Parameter Type Description
vName char * Name of process/interprocess variable to access
Function result PA_Variable Value of the variable whose name is vName

Description

The routine PA_GetVariable returns the content of the variable whose name is passed in vName .

To get the content of an interprocess variable, vName must start by the interprocess sign ("<>" under Windows or the diamond under MacOS)

If the 4D Plug-in attempts to access a non-existing variable, the PA_Variable data structure returned with a type = eVK_Undefined (this can be get by the PA_GetVariableKind routine) and PA_GetLastError returns eER_NoErr .

NOTE:

Depending on default settings and on previous calls to PA_UsePStrings or PA_UseCStrings , vName must be a Pascal or a C string.

IMPORTANT NOTE:

For Text, Picture, and BLOB, remember that the handles to the data of those structures belong to 4th Dimension. Do not dispose of it or call PA_ClearVariable .

Examples

(1) Checking the kind of a variable.

   // We are waiting for a longint variable
   PA_Variable   aVar;
   aVar = PA_GetVariable("\pmyPrivateVar"); // using Pstring on a Mac
   if(PA_GetVariableKind(aVar) != eVK_Longint)
      PA_Alert("\pI expected a long integer variable");
 

(2) Get the value of a system variable (OK).

   char GetOK ()
   {
      PA_Variable   ok;
      char      okValue = (char) 0;
      
   // Note that in interpreted mode, OK may be undefined
      ok = PA_GetVariable("OK"); // using C strings on Windows
 
      if(PA_GetLastError() == eER_NoErr)
      {
         switch (PA_GetVariableKind(ok))
         {
            case eVK_Real:
               if (PA_GetRealVariable(ok) != 0.0 )
                  okValue = 1;
               break;
            case eVK_Longint:
               if (PA_GetLongintVariable(ok) != 0)
                  okValue = 1;
               break;
         }
      }
      
      return okValue;
   }
 

See Also

PA_GetVariableKind .

Error Handling

Use PA_GetLastError to see if an error occurred.