Re : Quel chemin utiliser pour interroger la base de données ?Je préfère utiliser la troisième option. Reason étant la plus claire (à mon avis) et me permet de contrôler quand je ferme ma connexion à la base de données (c'est aussi la première que j'ai apprise). Le seul cas où j'utilise New SQL Query est lorsque je veux exécuter une requête en arrière-plan. Je pourrais envisager de passer à New SQL Query s'il y a une raison à cela (le simple fait d'être "recommandé" n'est certainement pas suffisant pour moi pour y passer).
Re : Quel chemin utiliser pour interroger la base de données ?Merci @jthi pour ta réponse,
J'aimerais entendre une déclaration des développeurs de JMP ici, car je n'ai rien trouvé dans la documentation,
@martindemel ou @briancorcoran ?
Peut-être pourrait-on ajouter quelques mots à la documentation sur les différentes manières de base de données ?
Re : Quel chemin utiliser pour interroger la base de données ?Une documentation supplémentaire et des exemples de travail appropriés seraient certainement utiles (peut-être utiliser la base de données .sqlite et l'ajouter à $SAMPLE_IMPORT_DATA?).
Cela semble avoir de la documentation mais elle n'est pas correctement liée dans le bouton d'aide de l'index de script https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-messages.shtml# et puis nous avons ceci https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-functions.shtml#ww5089351 .
Si c'est vraiment la méthode préférée (les performances entre les différentes méthodes ont-elles été testées ?) Je pourrais très probablement commencer à modifier mes scripts pour utiliser << Run Foreground solution.
Re : Quel chemin utiliser pour interroger la base de données ?J'ai fait quelques tests avec New SQL Query et j'ai l'impression qu'il a quelques fonctionnalités intéressantes qui sont implémentées de telle manière que je ne les utiliserais pas vraiment, telles que les fonctions utilisées avec OnRunComplete/OnRunCanceled/OnError doivent être dans l'espace de noms global . Peut-être que je pourrais écrire des fonctions très générales qui pourraient être utilisées avec celles-ci, mais quand même... c'est un espace de noms global.
Il semble également être plus lent que Open Database ou Execute SQL (en particulier avant le démarrage de la requête), ce qui pourrait poser problème si vous deviez exécuter plusieurs petites requêtes. Peut-être devrais-je modifier ma chaîne DNS d'une manière ou d'une autre lors de l'utilisation de la nouvelle requête SQL (en dehors de l'ajout d'ODBC
?


Très probablement, je m'en tiendrai aux "anciennes" méthodes d'interrogation, sauf si j'ai besoin de pouvoir exécuter mes requêtes en arrière-plan.
Re : Quel chemin utiliser pour interroger la base de données ?Salut Georg, Jarmo,
La nouvelle requête SQL est la méthode qui bénéficiera des améliorations à l'avenir, tandis que la création d'une connexion à la base de données et l'exécution de sql seront en grande partie en mode maintenance (correction de bogues). Les nouvelles initiatives JMP 18+ que nous avons autour de la création de plus de méthodes d'accès aux bases de données et de la persistance de ces informations de connexion car les connecteurs de données basés sur JSL utiliseront la nouvelle requête SQL. Je ferai savoir à la documentation que les informations pourraient être plus claires.
J'espère que ça aide,
Brian Corcoran
Développement JMP
Re : Quel chemin utiliser pour interroger la base de données ?Salut jti,
dans mon cas, la vitesse n'est pas la plus importante, j'aime la "nouvelle requête SQL" en raison de la fonctionnalité, et parce qu'elle est plus sûre en ce qui concerne la chaîne de connexion et le mot de passe.
Si la préférence "Masquer les chaînes de connexion ODBC" n'est pas définie, les deux autres méthodes placeront littéralement le mot de passe dans le script source de la nouvelle table. "new sql query" conserve la chaîne de connexion mais change le mot de passe en "%PWD%".
Si la préférence "Masquer les chaînes de connexion ODBC" est définie, cela supprimerait les scripts {"source", "modifier la requête", "mettre à jour à partir de la base de données"}, et je n'aime pas cela, car c'est cool que jmp connecte la table avec la façon dont les données ont été générées et la possibilité de mettre à jour les données, une option que j'utilise très souvent.
Dans un paysage d'entreprise avec différents scripteurs, il est difficile de gérer différentes méthodes (et donc différents paramètres de préférence selon les méthodes). Ça rend tout compliqué. C'est pourquoi j'aime avoir un favori clair.
Dans quelle direction aller interroger la base de données ?Chers tous,
J'utilise beaucoup les requêtes de base de données, en combinaison avec sql personnalisé. Je sais, il existe 3 méthodes comme indiqué ci-dessous.
J'aime le plus la "nouvelle requête sql", car elle est la plus puissante et la plus sûre (voir mot de passe ...).
Malheureusement, son comportement concernant les chaînes de connexion Hide ODBC a changé dans JMP17, mais il sera corrigé :
Comportement JMP17 sur l'ensemble de préférences "Masquer les chaînes de connexion ODBC": connexion str ... - Communauté d'utilisateurs JMP
Les développeurs du Discovery Summit Europe à Sitges m'ont dit que la méthode des nouvelles requêtes sql est celle recommandée, plus stable, et les deux autres sont obsolètes. Mais j'ai aussi entendu dire qu'il y avait un problème de vitesse. Ici, je n'ai jamais lu cette recommandation, ni dans la documentation.
J'aimerais discuter :
Quelle méthode utilisez-vous et pourquoi ?
Et quelles expériences avez-vous faites ?
Merci et meilleures salutations,
Georg
Noms par défaut à ici( 1 ); // 3 façons différentes d'accéder à la base de données // constantes // cela fonctionne sur toutes les bases de données Oracle sql_str = "select * from Dual"; // doit être adapté à votre base de données cnx_str ="DSN=MYDSN_NAME;UID=USERNAME;PWD=PASSWORD" ; // la nouvelle requête sql nécessite une chaîne de connexion commençant par "ODBC :" // il n'y a pas de bonne documentation dans le manuel (guide de script et aide JMP) qry_obj = New SQL Query( query name("New SQL Query"), connection( " ODBC :"||chaîne_cnx ), sql personnalisé( chaîne_sql ) ); dt_sqlquery = qry_obj << exécuter foreground(); // la base de données ouverte est un oneliner // avec "Masquer la chaîne de connexion ODBC" non défini, il enregistre le mot de passe en clair dans les scripts de table dt_open = open database(cnx_str, sql_str, "Open Database"); // s'attendre à ce que sql ait besoin que la base de données soit ouverte avant d'envoyer des instructions // avec "Masquer la chaîne de connexion ODBC" non défini, il enregistre le mot de passe en clair dans les scripts de table dbc=create database connection(cnx_str); dt_execute = execute sql(dbc, sql_str, "Execute SQL"); fermer la connexion à la base de données (dbc); // EOSAutomatisation et script