Si instruction qui vérifie la table de données existante<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
J'essaie de créer une instruction if qui vérifie si un spécifique (le nom de la table est connu) existe ou non. Si le tableau existe, il doit être annexé à un journal. Mon code est le suivant :
// affecte la table à une variable.
Tableau de données ( "Ber" ) << Sous-ensemble ( Invisible , ( Lignes sélectionnées ) , Nom de la table de sortie ( "Production" ) ) ;
NC1 = Tableau de données ( " Production " ) ;
......
// Vérifie si les tables existent
Si ( essayer ( Tableau de données ( " Production " ) , TableExiste = 0 ) ,
NC1 << journal
,
JRN << Ajouter ( Zone de texte ( "Alla neg. prouveur har ett värde under 0.2" )) ;
) ;
J'ai aussi essayé avec les éléments suivants :
Si ( essayer ( NC1, TableExiste = 0 ) ,
NC1 << journal
,
JRN << Ajouter ( Zone de texte ( "Alla neg. prouveur har ett värde under 0.2" )) ;
) ;
Résultats:
Même si la table existe (aucune erreur ne se produit lors de l'exécution du script), la table n'est pas ajoutée.
Si le tableau n'existe pas, la zone de texte est ajoutée.
Pourquoi cela ne fonctionne-t-il pas ?
Sincères amitiés
Anders
Re : Si l'instruction qui vérifie la table de données existanteL'instruction IF nécessite une condition qui prend la valeur true ou false.Vous comptez sur la fonction TRY pour ce faire, ce qui n'est pas sa tâche principale, mais elle renverra la valeur de l'expression si évalue.Mais DATA TABLE("Output") donne une référence à une table de données, il ne donne pas de réponse vrai/faux.En particulier, il ne donne pas la réponse vraie et donc l'expression IF n'est jamais évaluée.
Re : Si l'instruction qui vérifie la table de données existanteJ'utilise une fonction pour cela.Une fois que vous avez chargé la fonction, appelez-la simplement comme ceci :
si (table_exists( "Production" ) ,
// ajouter au journal
,
// ne pas ajouter
) ;
Voici la fonction :
/*
Nom de la fonction : table_exists
Description : renvoie 1 si la table existe, 0 sinon
Arguments:
table_name Table pour vérifier l'existence de
*/
table_exists = Fonction ( { nom de la table } ,
{ Locale par défaut } ,
tbl_exists_flag = 0 ;
// 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 ;
Pause () ; // saute hors de la boucle maintenant que nous avons trouvé la table
) ;
) ;
tbl_exists_flag ;
) ; // fin de la fonction table_exists
Re : Si l'instruction qui vérifie la table de données existantefonctionne comme un charme, merci pour votre aide.
Puis-je demander pourquoi cela ne fonctionne pas lorsque je fais une déclaration combinée de If et try? Il me semble que JMP effectue les opérations (aucune erreur n'est générée) mais il n'a pas effectué toutes les instructions.
Sincères amitiés
Anders
Re : Si l'instruction qui vérifie la table de données existanteCela devrait vous aider :
// Vérifie si les tables existent
Essayer (
Tableau de données ( "Production" ) ;
tableExiste = 1
,
tableExiste = 0
) ;
Si ( tableExiste ,
Afficher ( "existe" )
,
Afficher ( "n'existe pas" )
) ;