Créer une erreur de connexion à la base de donnéesJ'essaie d'établir une connexion à la base de données via des scripts et c'est la première fois que je le fais. J'ai pu créer le script suivant, mais il semble qu'il y ait un bogue qui fait qu'à chaque fois qu'il y a une connexion infructueuse, il y a une fenêtre contextuelle "JMP Alert" par défaut (voir l'instantané) au lieu d'être contenue dans la fonction "Try" (j'essayais avec un nom de base de données incorrect de "TEST" qui a conduit à la fenêtre contextuelle. Y a-t-il un moyen de contrôler cela ?
De plus, existe-t-il un bon matériel de lecture (par exemple, les meilleures pratiques de base) pour incorporer SQL au script JMP ?
Merci beaucoup!
names default to here(1);
//Standard SQL syntax string to create database connection from JMP
DB.SQL = "DSN="||"DSN_Name" ||";Description=" || "DSN_Desc" || ";
Trusted_Connection=Yes;APP=JMP;DATABASE="|| "DB_Name" || ";";
//Expression to arrange the User Interface of PODS setup
//Require users to input Database Source Name (DSN Name), Database Source Description (DSN Description) and Database Name
DB_Connection.UI = expr(
Hlistbox(spacerbox(size(5,5)),
Vlistbox(align("right"),spacerbox(size(5,5)),
vb1_1 = vlistbox(align("left"),
panelbox("Insert PODS Connection Info",
lineupbox(ncol(2),
Textbox("DSN Name : "),TEB_DSN_Name = Texteditbox("",set width(150)),
Textbox("DSN Description : "),TEB_DSN_Desc = Texteditbox("",set width(150)),
Textbox("Database Name : "),TEB_DB_Name = Texteditbox("",set width(150))
)
),
spacerbox(size(5,5)),
temp1_1 = Textbox("PODS Connection Status: ")
),
spacerbox(size(3,3)),
Test_DB_Connection.button,
spacerbox(size(3,3)),
button box(" Cancel ",currentwindow()<<CLOSE window=""></CLOSE>

ScriptRe : Créer une erreur de connexion à la base de donnéesSalut @Mark_Bailey . Ouais, tu as raison. Certainement un bon point de départ pour tirer parti du script de table source. J'explorais d'autres moyens car j'aurais peut-être besoin d'étendre l'utilisation de ce script à d'autres utilisateurs potentiels au sein de mes organisations qui ne sont peut-être pas aussi familiers avec JMP, sans parler des scripts. Merci pour le conseil 
Re : Créer une erreur de connexion à la base de donnéesJe suggère qu'à l'avenir, vous vous connectiez d'abord de manière interactive pour prouver qu'une connexion est possible. Un avantage supplémentaire est que JMP écrira un script de table source avec le JSL correct pour le même résultat. Vous pouvez copier ce script dans le vôtre au lieu d'écrire et de déboguer le vôtre,
Re : Créer une erreur de connexion à la base de donnéesAh, désolé, j'ai omis ça. Si JMP pense qu'il s'exécute en mode Batch (terminologie ancienne sur le traitement des données par lots, sans terminal pour la saisie de l'utilisateur), ces alertes sont écrites dans le journal et une réponse par défaut est effectuée. Sinon, en mode interactif, JMP ouvre une boîte de dialogue modale pour obtenir la réponse. La plupart du temps, si un bouton a été pressé pour lancer du JSL, le comportement interactif est correct. Et si un script est soumis (pendant le déjeuner peut-être), vous préférez ne pas revenir à un "ok?" dialogue. Les scripts de bouton ont tendance à être courts, donc l'heuristique a tendance à fonctionner.
Re : Créer une erreur de connexion à la base de donnéesMerci @Craige_Hales . Je ne comprends pas ce que fait exactement "Batch Interactive ()", mais cela résout le problème. 
Re : Créer une erreur de connexion à la base de donnéesEssayez une variante de ceci.
bi = Batch Interactive( 1 );
Try(
db = Create Database Connection( DB.SQL_Updated );
If( Is Missing( db ),
Print( "unable..." ) // I think this is the right way to notice the error
);
,
Print( "Unable to connect to Database" ) // I think this may not happen?
);
Batch Interactive( bi );
Vous pouvez utiliser logcapture() si le message du journal pose problème.
Je pense que l'utilisation de la valeur renvoyée par le premier appel batchinteractive pour passer au second est la bonne façon de pousser/faire sauter le drapeau. Je pense que JMP pousse en interne "interactif" pour le drapeau lorsqu'un script est exécuté à partir d'un bouton.
Note depuis @Wendy_Murphrey . La recherche dans la communauté produira plus d'historique sur le lot interactif.