Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Type
|
Type ( FeldVar ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
FeldVar | Feld, Variable |
![]() |
Zu testender Ausdruck | |||||
Funktionsergebnis | Lange Ganzzahl |
![]() |
Datentypnummer | |||||
Die Funktion Type gibt einen numerischen Wert zurück mit dem Typ des Feldes oder der Variablen, der in FeldVar übergeben wurde.
4D bietet unter dem Thema Feld und Variablentypen folgende vordefinierten Konstanten:
Konstante | Typ | Wert |
Array 2D | Lange Ganzzahl | 13 |
Blob array | Lange Ganzzahl | 31 |
Boolean array | Lange Ganzzahl | 22 |
Date array | Lange Ganzzahl | 17 |
Integer array | Lange Ganzzahl | 15 |
Is alpha field | Lange Ganzzahl | 0 |
Is BLOB | Lange Ganzzahl | 30 |
Is Boolean | Lange Ganzzahl | 6 |
Is collection | Lange Ganzzahl | 42 |
Is date | Lange Ganzzahl | 4 |
Is integer | Lange Ganzzahl | 8 |
Is integer 64 bits | Lange Ganzzahl | 25 |
Is longint | Lange Ganzzahl | 9 |
Is null | Lange Ganzzahl | 255 |
Is object | Lange Ganzzahl | 38 |
Is picture | Lange Ganzzahl | 3 |
Is pointer | Lange Ganzzahl | 23 |
Is real | Lange Ganzzahl | 1 |
Is string var | Lange Ganzzahl | 24 |
Is subtable | Lange Ganzzahl | 7 |
Is text | Lange Ganzzahl | 2 |
Is time | Lange Ganzzahl | 11 |
Is undefined | Lange Ganzzahl | 5 |
Is variant | Lange Ganzzahl | 12 |
LongInt array | Lange Ganzzahl | 16 |
Object array | Lange Ganzzahl | 39 |
Picture array | Lange Ganzzahl | 19 |
Pointer array | Lange Ganzzahl | 20 |
Real array | Lange Ganzzahl | 14 |
String array | Lange Ganzzahl | 21 |
Text array | Lange Ganzzahl | 18 |
Time array | Lange Ganzzahl | 32 |
Sie können Type auf Felder, Interprozessvariablen, Prozessvariablen, lokale Variablen und dereferenzierte Zeiger für diese Objekttypen anwenden. Sie können Type auf die Parameter ($1, $2 ... ${...}) einer Projektmethode oder Funktionsergebnisse ($0) anwenden.
Hinweise:
Folgende Projektmethode leert einige oder alle Felder des aktuellen Datensatzes der Tabelle mit einem als Zeiger übergebenen Parameter. Das geschieht ohne Löschen oder Ändern des aktuellen Datensatzes:
` Projektmethode EMPTY RECORD
` EMPTY RECORD ( Zeiger {; Lang } )
` EMPTY RECORD ( -> [Tabelle] { ; Typ Flags } )
C_POINTER($1)
C_LONGINT($2;$vlTypFlags)
If(Count parameters>=2)
$vlTypFlags:=$2
Else
$vlTypFlags:=0xFFFFFFFF
End if
For($vlField;1;Get last field number($1))
$vpField:=Field(Table($1);$vlField)
$vlFieldType:=Type($vpField->)
If($vlTypeFlags ??$vlFieldType )
Case of
:(($vlFieldType=Is alpha field)|($vlFieldType=Is text))
$vpField->:=""
:(($vlFieldType=Is real)|($vlFieldType=Is integer)|($vlFieldType=Is longint))
$vpField->:=0
:($vlFieldType=Is date)
$vpField->:=!00/00/00!
:($vlFieldType=Is time)
$vpField->:=?00:00:00?
:($vlFieldType=Is Boolean)
$vpField->:=False
:($vlFieldType=Is picture)
C_PICTURE($vgEmptyPicture)
$vpField->:=$vgEmptyPicture
:($vlFieldType=Is subtable)
Repeat
ALL SUBRECORDS($vpField->)
DELETE SUBRECORD($vpField->)
Until(Records in subselection($vpField->)=0)
:($vlFieldType=Is BLOB)
SET BLOB SIZE($vpField->;0)
End case
End if
End for
Mit dieser Projektmethode in Ihrer Datenbank können Sie schreiben:
` Leere den gesamten aktuellen Datensatz der Tabelle [Dinge tun]
EMPTY RECORD(->[Dinge tun])
` Leere Text, BLOB und Bildfelder für den aktuellen Datensatz der Tabelle [Dinge tun]
EMPTY RECORD(->[Dinge tun];0?+Is text?+Is BLOB?+Is picture)
` Leere den gesamten aktuellen Datensatz der Tabelle [Dinge tun] außer alphanumerische Felder
EMPTY RECORD(->[Dinge tun];-1?-Is alpha field)
In manchen Fällen, z.B. beim Schreiben von generischem Code, müssen Sie wissen, ob ein Array ein unabhängiges Standard Array oder die Zeile eines 2D Arrays ist. Dafür können Sie folgenden Code verwenden:
ptrmyArr:=->myArr{6} ` Ist myArr{6} die Zeile eines 2D Array?
RESOLVE POINTER(ptrmyArr;varName;tableNum;fieldNum)
If(varName#"")
$ptr:=Get pointer(varName)
$thetype:=Type($ptr->)
` Ist myArr{6} die Zeile eines 2D Array, ist $thetype gleich 13
End if
Siehe Beispiel zum Befehl APPEND DATA TO PASTEBOARD.
Produkt: 4D
Thema: Programmiersprache
Nummer:
295
Geändert: 4D v11 SQL
4D Programmiersprache ( 4D v20 R7)