TCL Command ABRDESIGN, Ergebnisverwaltung
Syntax
array set rescol [ABRDESIGN colname GET]
set iexist [ABRDESIGN colname EXIST]
array set ret [ABRDESIGN colname INS longname coltype ucode usymb descr]
array set ret [ABRDESIGN colname DEL]
Beschreibung
Abfrage der Daten zu einem bestimmten Ergebnis
Prüfung der Existenz eines bestimmten Ergebnisses
Einfügen eines neuen Ergebnisses
Löschen eines vorhandenen Ergebnisses
|
Argument |
Dimension |
Bedeutung |
|
colname |
TEXT |
Spaltenname; Der Name sollte kurz sein und muss den SQL-Regeln für Spaltennamen entsprechen. |
|
GET |
KEYWORD |
Daten abfragen |
|
EXIST |
KEYWORD |
Prüfung auf Existenz |
|
INS |
KEYWORD |
Einfügen eines neuen Ergebnisses |
|
DEL |
KEYWORD |
Löschen eines vorhandenen Ergebnisses |
|
longname |
TEXT |
Ausführlicher Name des Ergebnisses (arg2 = INS) |
|
coltype |
ENUM |
SQL-Datentyp (“?”, “INT”, “REAL”, “TEXT”, “BLOB”), (arg2 = INS) |
|
ucode |
ENUM |
Einheitencode (s. Kommando PROJECT/UNIT); Zusätzlich gibt es die Dimensionen "1/TEMP", "FORCE/L", "FORCE/L/L", "AREINF/L", "LSTRUCT**3". (arg2 = INS) |
|
usymb |
TEXT |
Einheitensymbol; Nur anzugeben bei ucode = "NONE". In diesem Fall kann das Symbol selbst gewählt werden. (arg2 = INS) |
|
descr |
TEXT |
Beschreibender Text (arg2 = INS) |
Rückgabefeld für [ABRDESIGN ... GET]
|
Feldargument |
Dimension |
Bedeutung |
|
colname |
TEXT |
Spaltenname |
|
longname |
TEXT |
Ausführlicher Name des Ergebnisses |
|
coltype |
ENUM |
SQL-Datentyp (“?”, “INT”, “REAL”, “TEXT”, “BLOB”) |
|
ucode |
ENUM |
Einheitencode (s. Kommando PROJECT/UNIT); Zusätzlich gibt es die Dimensionen "1/TEMP", "FORCE/L", "FORCE/L/L", "AREINF/L", "LSTRUCT**3". |
|
usymb |
TEXT |
Einheitensymbol |
|
column |
INT |
Spaltennummer des Ergbnisses |
|
validx |
INT |
0-basierter Index des Ergebnisses im Rückgabefeld der Werte (vgl. ABRDESIGNROW ... GETPACKED) |
|
info |
TEXT |
Beschreibender Text oder Fehlerinformation |
|
error |
INT |
Fehlerstatus |
Rückgabe für [ABRDESIGN ... EXIST]
|
Return |
Dimension |
Bedeutung |
|
iexist |
INT |
0 - Ergebnis nicht vorhanden, 1 - Ergebnis existiert |
Rückgabefeld für [ABRDESIGN ... INS ... ]
|
Feldargument |
Dimension |
Bedeutung |
|
error |
INT |
Fehlerstatus |
|
info |
TEXT |
Fehlerinformation |
Rückgabefeld für [ABRDESIGN ... DEL]
|
Feldargument |
Dimension |
Bedeutung |
|
error |
INT |
Fehlerstatus |
|
info |
TEXT |
Fehlerinformation |
Scopes
All
Beispiele
set format1 " %-24s %-24s %-4s %-12s %-12s"
# get content of all columns 0,1,...,count-1
set rescols [ABRDESIGN GET RESULTS]
set count [llength $rescols]
puts $outfile ""
puts $outfile " Column Name Long Name Type Unit Symbol"
puts $outfile " --------------------------------------------------------------------------"
foreach colname $rescols {
array unset column
array set column [ABRDESIGN $colname GET]
puts $outfile [format $format1 $colname $column(longname) $column(coltype) $column(ucode) $column(usymb)]
}
Es wird angenommen, dass eine Textdatei outfile zum Schreiben geöffnet wurde. Die Ergebnisdaten werden formatiert in die Textdatei geschrieben.
Die Ausgaben sind projektabhängig und können zum Beispiel wie folgt aussehen:
Column Name Long Name Type Unit Symbol
--------------------------------------------------------------------------
A1 ASuser REAL AREINF [cm²]
A3 ASmax REAL AREINF [cm²]
A4 Aswuser REAL AREINF/L [cm²/m]
A6 Aswmax REAL AREINF/L [cm²/m]
Va Va REAL LSTRUCT**3 [m³]
BLY Len-Y REAL LSTRUCT [m]
BLZ Len-Z REAL LSTRUCT [m]
XResult My pressure REAL FORCE/L/L [kN/m²]
Ausgaben zu obiger Script.
set myresult "XResult"
if { [ABRDESIGN $myresult EXIST] == 0 } {
array set retval [ABRDESIGN $myresult INS "My pressure" REAL FORCE/L/L "" "Added by my own."]
if { $retval(error) != 0 } {
ABMERROR "Error: Insertion fails on $myresult."
}
}
Es wird das Ergebnis "XResult" eingefügt, falls es noch nicht existiert. Im Fehlerfall wird eine Meldung geschrieben.
set myresult "XResult"
array set retval [ABRDESIGN $myresult DEL]
if { $retval(error) != 0 } { ABMERROR "Error: Deletion fails on $myresult." }
Es wird das Ergebnis "XResult" gelöscht. Im Fehlerfall wird eine Meldung geschrieben.
array set column [ABRDESIGN "A3" GET]
set idxA3 $column(validx)
array set row [ABRDESIGNROW $rowID GETPACKED]
# get current values
set A3 [lindex $row(values) $idxA3]
Es wird das Ergebnis "A3" abgefragt. Nachdem der Index ermittelt wurde und die Ergebinszeile $rowID vorliegt, wird der Wert für "A3" der Variable A3 zugewiesen.
