acces a des BdD distantes via jdbc

RPG (3 et 4, free), CL, SQL, etc...
Répondre
Le Manach
Messages : 14
Enregistré le : jeu. 20 janv. 2011, 11:30:39
Localisation : lorient

acces a des BdD distantes via jdbc

Message par Le Manach »

Je cherche, via une connexion JDBC à une machine A, accéder à une BdD d'une machine B.
A priori il faut ajouter la BDD de la machine B avec WRKRDBDIRE (en faisant attention quelle est bien le meme nom des 2 cotés). C'est ensuite que je bloque ...
Je crois qu'il y a des modules DB2 à installer mais lesquels et sur quelle machine ?

Merci d'avance

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Message par cmasse »

Je crains qu'il n'y ait confusion.


WRKRDBDIRE permet d’accéder à une base DB2 éloignée en mode natif SQL.
Après avoir enregistré la base, il faut utiliser l'ordre CONNECT TO, soit sous STRSQL soit dans un pgm RPG/COBOL.


JDBC permet d'accéder à des bases éloignées (tout type) depuis une application écrite en java. WRKRDBDIRE est inutile, par contre le driver JDBC (à télécharger) doit être placé dans l'IFS et ajouté au CLASSPATH.


Enfin, pour accéder à une base éloignée non DB2 depuis une application RPG, voyez le projet JDBCR4, qui lui utilise un driver JDBC via JNI (Java Native Interface) http://www.scottklement.com/jdbc/
Christian Massé (Volubis.fr)

Le Manach
Messages : 14
Enregistré le : jeu. 20 janv. 2011, 11:30:39
Localisation : lorient

Message par Le Manach »

Je pense m'être mal exprimé, je suis en fait avec Squirrel SQL connecté à un AS400 "A" et je souhaite faire des requetes de type :
select * from as400B.bib1.fic1.

Pour être précis cette requete fonctionne dans l'autre sens c'est a dire : select * from as400A.bib1.fic1 a partir d'une connexion jdbc sur l'AS400B.

les 2 AS sont en V7R1.

Y a t-il un lien avec le package QSQCLIPKGN de type *SQLPKG dans QGPL qui est dans l'AS400 "A" et pas dans "B" ? si oui comment le met-on ?

Cordialement

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Message par cmasse »

OK, je comprends mieux.

Pour accèder à une base éloignée on peut utiliser CONNECT TO ou la dénomination en 3 parties.

AVEC CONNECT TO on peut saisir profil/mot de passe


Avec la dénomination en 3 partie (machine.biblio.table) la connexion doit être implicite. pour cela deux possibilités :

. SSO (config EIM)
. ADDSVRAUTE

ce dernier point permet d'enregistrer à l'avance et par machine, profil/mot de passe à envoyer.

ca a du être fait sur A et pas sur B ?
Christian Massé (Volubis.fr)

Le Manach
Messages : 14
Enregistré le : jeu. 20 janv. 2011, 11:30:39
Localisation : lorient

Message par Le Manach »

Merci pour ces infos mais le souci doit être ailleurs car sous Sys i navigator, dans l'option réseau des profils utilisateur, je n'ai pas de serveur éloigné (ni sur l'AS400 A, ni sur B).

Je pense en plus être coincé une fois ce problème d'accès réglé car j'ai l'impression qu'il n'est pas possible de faire une jointure entre une table locale et une table distante...

cordialement

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

jointure

Message par cmasse »

Oui, je confirme, pas de jointure muli-systèmes.

la seule opération "bizarre" admise est

Code : Tout sélectionner

INSERT INTO TABLELOCALE (select * from autresysteme.bilbio.tabledistante where ....
par contre DB2 web Query sait le faire !
Christian Massé (Volubis.fr)

Répondre