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 "Essayer" (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 de bons supports de lecture (par exemple, les meilleures pratiques de base) pour l'intégration de 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 : Erreur de création de connexion à la base de donnéesEssayez une variante de cela.
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 de journal est un 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/détacher le drapeau. Je pense que JMP pousse en interne "interactif" pour le drapeau lorsqu'un script est exécuté à partir d'un bouton.
Noter de @Wendy_Murphrey . La recherche dans la communauté produira plus d'historique sur batch interactif.
Re : Erreur de création de connexion à la base de donnéesMerci @Craige_Hales . Je ne comprends pas exactement ce que fait "Batch Interactive ()", mais cela résout le problème. :RÉ
Re : Erreur de création de connexion à la base de donnéesAh, désolé, j'ai oublié ça. Si JMP pense qu'il s'exécute en mode Batch (terminologie ancienne sur les données de traitement 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é enfoncé pour démarrer un 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 boutons ont tendance à être courts, donc l'heuristique a tendance à fonctionner.
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éessalut @markbailey . 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 