Est-il possible de se connecter à une base de données IBM DB2 sans utiliser ODBC ?Bonjour,
Nous utilisons une base de données IBM DB2 via une connexion SSL. La connexion OCBC à la base de données fonctionne bien, mais est assez complexe à configurer pour la majorité des utilisateurs. Si un logiciel peut utiliser une « connexion db2 de type 4 », odbc n'est pas nécessaire. Seule une « chaîne de connexion » est envoyée directement au serveur distant. Les paramètres de cette chaîne sont généralement configurés directement dans le logiciel. Une configuration de connexion est créée dans le logiciel avec les paramètres appropriés, ce qui est très simple à documenter par le service informatique et à exécuter par les utilisateurs.
J'ai l'impression que JMP ne prend pas directement en charge une « connexion de type 4 », mais R et Python le font. Et il est également possible d'extraire des données dans un script JSL, comme dans l'exemple ci-dessous. Pourrions-nous créer un petit script Python qui crée une connexion à la base de données qui serait ensuite disponible pour JSL ou pour le générateur de requêtes ?
// JSL Script to extract some IBM DB2 data
New SQL Query(
Connection(
"ODBC:DSN=DBPROD1;MODE=SHARE;PWD=%_PWD_%;SECURITY=SSL;SSLCLIENTKEYSTASH=C:\BRMDB2\ssl\truststore.sth;SSLCLIENTKEYSTOREDB=C:\BRMDB2\ssl\truststore.kdb;SSLSERVERCERTIFICATE=C:\BRMDB2\ssl\carootcert.der;UID=%_UID_%;"
),
QueryName( "Extract exemple" ),
CustomSQL(
"SELECT NAME
,EMPLOYEE_NB
,DEPARTMENT
,SALARY
FROM
EMPLOYEE_TABLE
WHERE
DEPARTMENT = 'MFG02'"
)
) << RunMerci pour votre aide!
Accès aux donnéesRe : Est-il possible de se connecter à une base de données IBM DB2 sans utiliser ODBC ?Sur la base de ces connecteurs de données, vous devrez utiliser ODBC. Une autre option serait d'utiliser l'intégration Python pour effectuer les requêtes. Écrivez une fonction qui prend par exemple la requête et à l'intérieur, exécute un script Python pour exécuter la requête et renvoie le résultat sous forme de tableau de données.
Re : Est-il possible de se connecter à une base de données IBM DB2 sans utiliser ODBC ?Salut,
C'est un peu ce que j'avais en tête, mais j'espérais que la connexion pourrait être un objet créé indépendamment et mis à disposition pour les requêtes SQL. Je vais tester votre suggestion et fournir des commentaires ici. Je suppose que je peux écrire un "modèle" de script Python que mes collègues pourraient coller dans leur JMP, en ajoutant le code SQL en fonction de leurs besoins. Je suis convaincu que cela devrait fonctionner. Cependant, je vais vérifier si cette solution est fonctionnelle et utilisable par mes collègues. Si c'est le cas, je fournirai des commentaires ici et accepterai la réponse comme une solution acceptable. Cela dépend de leur niveau de compétence en SQL et de la taille des tables.
Merci pour la réponse,
Re : Est-il possible de se connecter à une base de données IBM DB2 sans utiliser ODBC ?Je ne sais pas si ce type de connecteurs peut être réalisé dans JMP18 car ce module complémentaire possède la version minimale de JMP19 EA 3, S3 Data Connector (JMP Marketplace) , mais il semble utiliser Python comme connecteur pour AWS S3. S'il peut être utilisé dans JMP18, cela pourrait vous donner une idée de ce que vous pourriez faire. Vous devriez pouvoir télécharger le module complémentaire, puis l'extraire en utilisant 7zip par exemple.
Re : Est-il possible de se connecter à une base de données IBM DB2 sans utiliser ODBC ?Bonjour,
Pour les bases de données Oracle et Postgre, nous ne pouvons envoyer que la chaîne de connexion.
Je pense que cette méthode devrait également être possible pour db2 sans configurer l'odbc avec un nom pour chaque ordinateur.
Je pourrais prévoir de l'essayer ce mois-ci ou le mois prochain.
Salutations,
Guillaume
Re : Est-il possible de se connecter à une base de données IBM DB2 sans utiliser ODBC ?Salut,
Désolé pour ma réponse tardive.
Vous pouvez faire comme ça (testé de mon côté).
db2_connect =
"DRIVER={IBM DB2 ODBC DRIVER};
DATABASE= strDatabase;
HOSTNAME= strHostname;
PORT= strPort;
PROTOCOL=TCPIP;
UID= strUser;
PWD= strPassword;";
OpenDatabase(db2_connect, "SELECT * FROM SYSIBM.SYSDUMMY1;", "sysdummy1");You have to define the DRIVER and all other varaibles strDatabase, strHostname, strPort, strUser, strPassword
En utilisant SSL, vous pouvez essayer ceci (non testé) :
"DRIVER={IBM DB2 ODBC DRIVER};
DATABASE=strDatabase;
HOSTNAME=strHostname;
PORT=strPort;
PROTOCOL=TCPIP;
SECURITY=SSL;
UID=strUser;
PWD=strPassword;
SSLCLIENTKEYSTOREDB=/path/to/client/keystore.kdb;
SSLCLIENTKEYSTASH=/path/to/client/keystore.sth;
SSLCLIENTKEYPASSWORD=keystore_password;"
Salutations,
Guillaume
Re : Est-il possible de se connecter à une base de données IBM DB2 sans utiliser ODBC ?vous devrez peut-être utiliser plus de paramètres de connexion pour la connexion SSL.