C16_ProcArgument
C16_ProcArgument(const vPHANDLE aInstHdl, const vBYTE aArgType, void* aArgVal, const vBOOL aVarArg, const vBYTE aMaxLen): vERROR
Prozedurargument übergeben
Details
- aInstHdl: Instanz-Handle
- aArgType: Typ des Arguments
- aArgVal: Wert des Arguments
- aVarArg: Übergabe als Referenz (true), Übergabe als Wert (false)
- aMaxLen: Maximale Länge des zurückgegebenen Alphawertes
- Resultat: vERROR Fehlerwert
- Siehe: Befehle der Programmierschnittstelle, C16_ProcCall(), C16_ProcResult()
Mit dieser Funktion können vor dem Aufruf einer Prozedur mit C16_ProcCall() Argumente definiert werden. Im Parameter (aInstHdl) wird der von C16_InitInstance() bereitgestellte Instanz-Handle, der in der Funktion C16_OpenArea() zum Öffnen der Datenbank verwendet wurde, übergeben. (aArgType) beinhaltet den Typ des Übergabeparameters. Zur Festlegung des Types können folgende Konstanten verwendet werden:
- aArgType: Parametertyp
- _TypeAlpha: vCHAR (C++) / vPCHAR (Delphi)
- _TypeByte: vBYTE
- _TypeCaltime: vCALTIME
- _TypeDate: vDATE
- _TypeFloat: vFLOAT
- _TypeHandle: vPHANDLE
- _TypeInt: vINT
- _TypeLogic: vBOOL
- _TypePoint: vPOINT
- _TypeRect: vRECT
- _TypeTime: vTIME
- _TypeWord: vWORD
In (aArgVal) wird der Wert des Parameters übergeben. Die Übergabe kann als Wert (aVarArg = false) oder als Referenz (aVarArg = true) erfolgen. (aMaxLength) wird nur benötigt, wenn in (aArgVal) eine Zeichenkette als VAR-Parameter (aVarArg = true) übergeben wird. Der Wert gibt die maximale Anzahl der Zeichen an, die zurückgegeben werden können. In allen anderen Fällen wird der Wert ignoriert.:::info
Sollen einer Prozedur mehrere Argumente übergeben werden, muss die Funktion für jedes Argument aufgerufen werden.::::::info
Bei der Übergabe als Referenz (aVarArg = true) ist zu beachten, dass das entsprechende Argument der durch C16_ProcCall aufzurufenden CONZEPT 16-Funktion nicht mit var definiert sein darf.:::
Der Rückgabewert vom Typ vERROR beinhaltet entweder 0 (kein Fehler) oder einen negativen Fehlerwert (siehe Fehlerwerte ).
Beispiel:
Deklaration der CONZEPT 16-Funktion:
sub C16_Proc
(
aText : alpha;
aValue : int;
)
: logic;
DLL-Schnittstelle (C-Code):
vCHAR tParameter[11] = "Text";
vINT tParameter = 5;
vBYTE tType;
vBOOL* tResult;
// Argument vom Typ alpha mit Referenzübergabe.
err = C16_ProcArgument(instHdl,_TypeAlpha,tParameter,true,10);
// Argument vom Typ integer ohne Referenzübergabe.
err = C16_ProcArgument(instHdl,_TypeInt,&tParameter,false,0);
// Aufrufen der Funktion und Resultat auswerten.
err = C16_ProcCall(instHdl,"C16_Proc");
err = C16_ProcResult(instHdl,&tType,(void**)&tResult);
// Result = true?
if (*tResult > 0)
...