<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />j'ai une fonction qui s'appelle table_exists .Vous lui transmettez un nom de table sous forme de chaîne et il renvoie true si la table existe, false sinon.J'ai récemment décidé de le mettre à jour en vérifiant si l'argument d'entrée était même lié à quelque chose, mais il ne l'aime pas.
Par exemple:
est vide ( xyz )
Renvoie un 1 dans le journal, ce qui signifie que xyz n'est lié à rien.Mais si j'essaye
table_exists ( xyz )
J'obtiens ce message d'erreur :
ERREUR : Nom non résolu : xyz dans l'accès ou l'évaluation de 'xyz' , xyz
Voici la fonction :
table_exists = Fonction ( { nom de la table } ,
{ Locale par défaut } ,
tbl_exists_flag = 0 ;
si ( ! est vide ( nom de la table ) ,
// Boucle sur toutes les tables et regarde si celle-ci existe
num_tables = ntable () ;
Pour ( je = 1 , je <= num_tables , je ++,
un_nom = Tableau de données ( je ) << Obtenir le nom ;
si ( un_nom == nom de la table ,
tbl_exists_flag = 1 ;
casser () ; // sort de la boucle maintenant que nous avons trouvé la table
) ;
) ;
) ;
tbl_exists_flag ;
) ;
La variable xyz doit être évaluée pour que sa valeur puisse être transmise à la fonction.
Je peux penser à deux façons de gérer cela. Si vous utilisez une variable donnée, vous pouvez l'affecter à Empty() au début du script. xyz = Vide(). S'il obtient plus tard un nom, cela passera; s'il ne reçoit jamais de nom, alors il est vide.
L'autre façon serait d'envelopper l'appel de fonction dans un essai et de gérer le cas d'une variable indéfinie avant de la transmettre à la fonction. try(table_exists(xyz), "pas de nom de table")
La fonction table_exists est à usage général, donc je voulais gérer la situation si elle était appelée avec une variable vide avec élégance.
Je pense que le message d'erreur est là parce que vous transmettez xyz (une variable JSL non définie) à la fonction. Je pense que JSL essaie d'analyser xyz (avant d'exécuter le code de votre fonction) et qu'il échoue car il est vide. Essayez de mettre xyz entre guillemets dans votre appel de fonction :
table_exists("xyz")