If-Anweisung, die prüft, ob eine Datentabelle vorhanden ist<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich versuche, eine if-Anweisung zu erstellen, die prüft, ob ein bestimmter (Tabellenname ist bekannt) existiert oder nicht. Wenn die Tabelle vorhanden ist, sollte sie an ein Journal angehängt werden. Mein Code ist wie folgt:
//weist die Tabelle einer Variablen zu.
Datentabelle ( „Ber“ ) << Teilmenge ( Unsichtbar , ( Ausgewählte Zeilen ) , Name der Ausgabetabelle ( "Ausgabe" ) ) ;
NC1 = Datentabelle ( " Ausgabe " ) ;
......
//Überprüft, ob die Tabellen vorhanden sind
Wenn ( versuchen ( Datentabelle ( " Ausgabe " ) , TableExist = 0 ) ,
NC1 << Tagebuch
,
jr << Anhängen ( Textfeld ( „Alla neg. prover har ett värde under 0.2“ )) ;
) ;
Ich habe es auch mit Folgendem versucht:
Wenn ( versuchen ( NC1, TableExist = 0 ) ,
NC1 << Tagebuch
,
jr << Anhängen ( Textfeld ( „Alla neg. prover har ett värde under 0.2“ )) ;
) ;
Ergebnisse:
Obwohl die Tabelle vorhanden ist (während der Ausführung des Skripts treten keine Fehler auf), wird die Tabelle nicht angehängt.
Wenn die Tabelle nicht existiert, wird das Textfeld angehängt.
Warum funktioniert das nicht?
Mit freundlichen Grüße
Anders
Betreff: If-Anweisung, die prüft, ob eine Datentabelle vorhanden istDie IF-Anweisung erfordert eine Bedingung, die als wahr oder falsch ausgewertet wird.Sie verlassen sich dabei auf die TRY-Funktion, die nicht ihre Hauptaufgabe ist, aber bei der Auswertung den Wert des Ausdrucks zurückgibt.Aber DATA TABLE("Output") gibt einen Verweis auf eine Datentabelle, es gibt keine Richtig/Falsch-Antwort.Insbesondere wird die Antwort nicht „wahr“ zurückgegeben und daher wird der IF-Ausdruck nie ausgewertet.
Betreff: If-Anweisung, die prüft, ob eine Datentabelle vorhanden istIch verwende hierfür eine Funktion.Sobald Sie die Funktion geladen haben, rufen Sie sie einfach so auf:
Wenn (table_exists( "Ausgabe" ) ,
// an das Journal anhängen
,
// nicht anhängen
) ;
Hier ist die Funktion:
/*
Funktionsname: table_exists
Beschreibung: Gibt 1 zurück, wenn die Tabelle existiert, 0, wenn nicht
Argumente:
Tabellenname Tabelle, deren Existenz überprüft werden soll
*/
table_exists = Funktion ( { Tabellenname } ,
{ Standardmäßig lokal } ,
tbl_exists_flag = 0 ;
// Alle Tabellen durchlaufen und prüfen, ob diese vorhanden ist
num_tables = ntisch () ;
Für ( ich = 1 , ich <= num_tables , ich ++,
one_name = Datentabelle ( ich ) << Holen Sie sich den Namen ;
Wenn ( one_name == Tabellenname ,
tbl_exists_flag = 1 ;
brechen () ; // Springe aus der Schleife, nachdem wir die Tabelle gefunden haben
) ;
) ;
tbl_exists_flag ;
) ; // Funktion „table_exists“ beenden
Betreff: If-Anweisung, die prüft, ob eine Datentabelle vorhanden istFunktioniert wie ein Zauber, vielen Dank für Ihre Hilfe.
Darf ich fragen, warum es nicht funktioniert, wenn ich eine kombinierte If-Anweisung mache und es versuche? Es scheint mir, dass JMP die Vorgänge ausführt (es wird kein Fehler generiert), aber nicht die gesamte Anweisung ausgeführt hat.
Mit freundlichen Grüße
Anders
Betreff: If-Anweisung, die prüft, ob eine Datentabelle vorhanden istDas sollte Ihnen helfen:
//Überprüft, ob die Tabellen vorhanden sind
Versuchen (
Datentabelle ( "Ausgabe" ) ;
tableExist = 1
,
tableExist = 0
) ;
Wenn ( tableExist ,
zeigen ( „existiert“ )
,
zeigen ( „existiert nicht“ )
) ;