Skip to main content
Version: Next

METHOD RESOLVE PATH

METHOD RESOLVE PATH ( path ; methodType ; ptrTable ; objectName ; formObjectName {; *} )

ParameterTypeDescription
pathTextPath to resolve
methodTypeIntegerObject type selector
ptrTablePointerTable reference
objectNameTextName of form or database method
formObjectNameTextName of form object
*OperatorIf passed = command applies to host database when executed from a component (parameter ignored outside of this context)

This command is not thread-safe, it cannot be used in preemptive code.

Description

The METHOD RESOLVE PATH command parses the internal path name passed in the path parameter and returns its different components in the methodType, ptrTable, objectName, and formObjectName parameters.

The methodType parameter receives a value indicating the type of the method. You can compare this value with the following constants of the Design Object Access theme:

ConstantTypeValueComment
Path database methodInteger2Path of database methods specified. List of these methods:
[databaseMethod]/onStartup
[databaseMethod]/onExit
[databaseMethod]/onDrop
[databaseMethod]/onBackupStartup
[databaseMethod]/onBackupShutdown
[databaseMethod]/onWebConnection
[databaseMethod]/onWebAuthentication
[databaseMethod]/onWebSessionSuspend
[databaseMethod]/onServerStartup
[databaseMethod]/onServerShutdown
[databaseMethod]/onServerOpenConnection
[databaseMethod]/onServerCloseConnection
[databaseMethod]/onSystemEvent
[databaseMethod]/onSqlAuthentication
[databaseMethod]/ onHostDatabaseEvent
[databaseMethod]/ onRESTAuthentication
[databaseMethod]/ onMobileAppAuthentication
[databaseMethod]/ onMobileAppAction
Path project formInteger4Path of project form methods and all their object methods. Examples:
[projectForm]/myForm/{formMethod}
[projectForm]/myForm/button1
[projectForm]/myForm/mylist
[projectForm]/myForm/button1
Path project methodInteger1Name of method.
Example: MyProjectMethod
Path table formInteger16Path of table form methods and all their object methods. Example:
[tableForm]/table_1/Form1/{formMethod}
[tableForm]/table_1/Form1/button1
[tableForm]/table_1/Form1/mylist
[tableForm]/table_2/Form1/mylist
Path triggerInteger8Path of database triggers. Example:
[trigger]/table_1
[trigger]/table_2

Note: The command does not check if the method actually exists in the database/project. An error is generated only when an invalid table name is passed.

The ptrTable parameter contains a pointer to a database table when the path references a table form method or a trigger.

The objectName parameter contains either:

  • a form name when the path references a table form or project form
  • a database method name when the path references a database method.

The formObjectName parameter contains a form object name when the path references an object method.

If the command is executed from a component, it considers by default that path designates a component method. If you pass the * parameter, then it considers that path designates a host database method.

Example 1

Resolution of a database method path:

 var $methodType : Integer
 var $tablePtr : Pointer
 var $objectName : Text
 var $formObjectName : Text
 
 METHOD RESOLVE PATH("[databaseMethod]/onStartup";$methodType;$tablePtr;$objectName;$formObjectName)
  // $methodType: 2
  // $tablePtr: Nil pointer
  // $objectName: "onStartup"
  // $formObjectName: ""

Example 2

Resolution of a path for an object of a table form method:

 var $methodType : Integer
 var $tablePtr : Pointer
 var $objectName : Text
 var $formObjectName : Text
 
 METHOD RESOLVE PATH("[tableForm]/Table1/output1/myVar1";$methodType;$tablePtr;$objectName;$formObjectName)
  // $methodType: 16
  // $tablePtr: -> [Table1]
  // $objectName: "output1"
  // $formObjectName: "Btn1"

See also

METHOD Get path