Description
Creates an instance of a component running on the COM+ server. This function is called from within a component instance running on COM+.
Applies to
TransactionServer objects
Syntax
transactionserver.CreateInstance (objectvariable {, classname } )
Argument |
Description |
---|---|
transactionserver |
Reference to the TransactionServer service instance. |
objectvariable |
A global, instance, or local variable whose datatype is the same class as the object being created or an ancestor of that class. |
classname (optional) |
A string whose value is the name of the class datatype to be created. For COM+ components, you can optionally prepend a ProgID followed by a period to the class name (for example, "PowerBuilder.HTMLDataWindow". |
Return value
Long.
Returns 0 if it succeeds and one of the following values if an error occurs:
50 -- Distributed service error
52 -- Distributed communications error
53 -- Requested server not active
54 -- Server not accepting requests
55 -- Request terminated abnormally
56 -- Response to request incomplete
57 -- Not connected
62 -- Server busy
Usage
The CreateInstance function on the TransactionServer context object allows you to access other COM+ components running on the current server. The created instance inherits all the transaction and security attributes of the current object.
The CreateInstance function on the TransactionServer context object uses the same user and password information that applies to the component from which it is called.
Before you can use the transaction context service, you need to declare a variable of type TransactionServer and call the GetContextService function to create an instance of the service.
Examples
This example shows the syntax for creating an instance of a COM component:
Integer rc OleObject lole TransactionServer lts lole = create OleObjectrc = this.GetContextService("TransactionServer", lts) IF rc <> 1 THEN return "Error from GetContextService " + String (rc) END IF // PBCOM is the ProgID, n_genapp is the class namerc = lts.CreateInstance(lole, "PBCOM.n_genapp") IF rc <> 0 THEN return "Error from CreateInstance " + String (rc) END IFiole.my_func ()
See also
Description
Creates an instance of the .NET class and associates it with the DotNetObject object. The DotNetObject object must be instantiated first.
The instance of the class can be used to access the functions/properties in the corresponding .NET class.
Applies to
DotNetAssembly objects
Syntax
objectname.CreateInstance ( readonly string classname, CSharpObjcet DotNetObject {, arg1, arg2,..., argn })
Argument |
Description |
---|---|
objectname |
Reference to the DotNetAssembly object instance. |
classname |
The name of the .NET class. It must contain the namespace and the class name: [namespace].[class], for example, AppeonSample.StandardTest. |
DotNetObject |
The name of the DotNetObject object. |
{, arg1, arg2,..., argn } (optional) |
The .NET constructor argument. Constructor argument is optional. If no argument is passed in, the application will automatically call the constructor that takes no parameter; and if there is no such parameterless constructor, the instance will fail to create. |
Return value
Integer.
Returns values as follows. If the classname or DotNetObject argument's value is null, the method returns null.
1 -- Success.
-1 -- Unknown error.
-2 -- Could not find the assembly.
-6 -- Could not find the class name.
Usage
The class name is case insensitive. The application will ignore the case of the class name and find the first class in the order that matches.
If there is a nested class, you should use the plus sign ("+") instead of the dot (".") to access the nested class, in this format: [namespace].[class]+[nested-class], for example, AppeonSample.StandardTest+MathTest.
The value of the constructor argument can be of any standard data type. See the section called “Data types” in Application Techniques.
Passing parameters by reference to a constructor function is unsupported. The modified data cannot be returned.
For Char data type, it will be passed to .NET as String type by default; and if there is no constructor function that matches the type, the instance will fail to create.
If the instance failed to create, the exception message returned from .NET will be stored in the ErrorText property.
Examples
DotNetAssembly lcs_ass DotNetObject lcs_obj long ll_return //Instantiates the objects lcs_ass = create DotNetAssembly lcs_obj = create DotNetObject //Loads the DLL ll_return = lcs_ass.LoadWithDotNetFramework ("Appeon.Simple.dll") //ll_return = lcs_ass.LoadWithDotNetCore ("Appeon.Simple.dll") if ll_return < 0 then messagebox ("Load Dll Failed", lcs_ass.errortext) return end if //Creats the instance ll_return = lcs_ass.createinstance ("Appeon.Simple.AppeonCase01", lcs_obj, "appeon123") if ll_return < 0 then messagebox ("CreateInstance Failed", lcs_ass.errortext) return end if
See also