[AS400 / PHP] Update -> Pb de query

Update -> Pb de query [AS400 / PHP] - SQL/NoSQL - Programmation

Marsh Posté le 13-02-2007 à 12:47:12    

J'ai beau chercher sur le net, je ne trouve rien qui m'aide à résoudre mon pb.
 
Notre compta est sur un AS400. On utilise une interface JD Edwards pour la consulter et faire des queries.
Tout ceci étant très lourd, et comme je dois chaque mois sortir des tonnes de rapports, qui sont ensuite retravaillés par Access ou Excel, puis les envoyer par emails, j'aurais voulu automatiser un maximum ces taches en utilisant PHP et Mysql.
 
Est ce que quelqu'un a déjà été confronté à ce genre de pb ?
Quelle est la marche à suivre (drivers à installer, configuration de mon poste, etc...) pour débuter ?
 
Merci pour vos réponses, je suis perdu  :sweat:


Message édité par format_c le 22-02-2007 à 11:32:00
Reply

Marsh Posté le 13-02-2007 à 12:47:12   

Reply

Marsh Posté le 13-02-2007 à 13:51:05    

tu peux te connecter directement sur l'as400 en utilisant ODBC si c'est uniquement pour faire des rapports ça peut valoir le coup.
[edit]quand je dis "tu" c'est de tes scripts php dont je parlais[/edit]

 

Si tu tiens vraiment à recopier ta base db2 sur mysql, il va falloir que tu prévois un dump db2/import mysql sachant que tu risques d'avoir des problèmes sur certains types de données, et que du surcroît tu n'auras pas l'information en temps réel.


Message édité par anapajari le 13-02-2007 à 13:51:33
Reply

Marsh Posté le 13-02-2007 à 14:27:44    

Merci pour ta réponse, c'est donc faisable :)
Je précise que mon la base n'est pas sur ma machine. On utilise Iseries 400 pour créer des connections. Mais ce qui est bizarre c'est que je ne trouve aucun driver ODBC d'installer sur ma bécanne. Je cherche le client Access ODBC driver, mais impossible de mettre la main dessus.
Mais peut-être fais je fausse route ?

Reply

Marsh Posté le 13-02-2007 à 14:34:04    

Reply

Marsh Posté le 14-02-2007 à 17:56:02    

quand tu installes le client access sur ta machine, dans les machins optionnels il y a l'odbc. il faut choisir l'installation avancée

Reply

Marsh Posté le 15-02-2007 à 13:47:29    

Merci pour vos réponses !
Je vais devoir batailler ferme avec l'IT de ma boite pour qu'ils prennent un semblant de décision maintenant :D

Reply

Marsh Posté le 20-02-2007 à 12:02:18    

casimimir a écrit :

quand tu installes le client access sur ta machine, dans les machins optionnels il y a l'odbc. il faut choisir l'installation avancée


Coucou
On fait comment pour faire ce p***** de lien odbc, si la machine n'est pas "vue" par windows?


Message édité par Skualler le 20-02-2007 à 12:03:19
Reply

Marsh Posté le 21-02-2007 à 14:21:18    

Pour info sur linux ca marche super bien pour se connecter.
 
Voici un mini tuto. :hello:  
 

Citation :


#################################################
##                                                                                          
##           Aide sur l'installation des EDI sous Linux - Debian              
##            -------------------------------------------------        
##                                                                                          
#################################################
 
 
Installation du driver ODBC :
****************************
 
  1 - Paquet :
    Se procurer le paquet iSeriesODBC-5.1.0-0.16.i386.rpm sur le site d'IBM.
   
  2 - Installation du paquet avec alien :
    a) Installation alien : $> apt-get install alien
    b) Installation du paquet : $> alien -i iSeriesODBC-5.1.0-0.16.i386.rpm
   
    (Répertoire par défaut : /opt/ibm/iSeriesODBC)
 
    Paquet supplémentaire necessaire : unixodbc
    $> apt-get install unixodbc
     
  4 - Configuration du paquet :
    Création d’un lien symbolique permettant l’accès au driver :
    $> ln -sf /opt/ibm/iSeriesODBC/lib/libcwbcore.so /usr/lib/libcwbcore.so
    $> ldconfig
 
    Configuration du driver ODBC :
    $> vim /etc/odbc.ini
    $> vim /etc/odbcinst.ini
 
 
Example : odbc.ini
////////////////////////////////////////////////////////////////////////////////
[iSeries]
DSN = ASW
DESCRIPTION = Connexion ODBC sur un AS400 ATSCHW45
TRACE = Yes
TRACEFILE = /var/logs/odbc.log
DRIVER = iSeries
SYSTEM = 10.x.x.x
DBQ = RCO550xxxx
////////////////////////////////////////////////////////////////////////////////
 
     
 
Example : odbcinst.ini
////////////////////////////////////////////////////////////////////////////////
[iSeries]
Driver = /opt/ibm/iSeriesODBC/lib/libcwbodbc.so
Setup = /opt/ibm/iSeriesODBC/lib/libcwbodbc.so
Threading = 2
FileUsage = 1
DontDLClose = 1
////////////////////////////////////////////////////////////////////////////////
 
 
  5 - Test de la connexion :
    $> cd /opt/ibm/iSeriesODBC/bin
    $> cwbping 10.x.x.x
 
    NB : En cas de problème sur la librairie libstdc++-libc6.2-2.so.3 :
    Copier la librairie dans /usr/lib, puis créer un lien :
    $> ln /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so /usr/lib/libstdc++-libc6.2-2.so.3
    $> ldconfig
     
     
 
Installation de PHP + Extensions :
*********************************
 
  1 - Installation :
    $> apt-get install php4 php4-cgi php4-cgi-mysql php4-mysql php4-odbc
 
  2 - Configuration :
    Activer les extensions mysql.so et odbc.so dans le php.ini
    (Répertoire par défaut : /etc/php4/xx/php.ini) (+/- ligne 538)


Message édité par djfx le 21-02-2007 à 14:22:23
Reply

Marsh Posté le 21-02-2007 à 14:46:28    

C'est gentil mais on a pas le papa pinguin le papa pinguin le pa le pa le papaaaaaaaaaaaa oups je m'égare :pt1cable:

Reply

Marsh Posté le 22-02-2007 à 11:31:32    

C'est bon, j'ai réussi à me connecter en updatant ma version de Client Access et rajoutant le driver ODC livré avec.
 
Par contre maintenant j'ai un autre souci pour accédes à mes tables.
 
La structure est la suivante :
Systeme -> N0001
Librairie -> JXXDTA
Table -> F0900
exemple de champs -> CHAMPS1
 
 
J'ai essayé 2 queries qui me retournernt chacune leur erreur...
 
La première :
$query = "select * from JJXXDTA where F0900.CHAMPS1=000001";
Erreur -> Column qualifier or table F0900 undefined
 
La deuxième :
$query = "select * from JJXXDTA.F0900 where CHAMPS1=000001";
Erreur -> Qualified object name F0900 not valid
 
Pour me connecter j'utilise la syntaxe suivante
$dsn = "DRIVER=iSeries Access ODBC Driver;SYSTEM="N0001";CMT=0;NAM=1;DFT=2";
$db = odbc_connect($dsn, $user, $pwd);
 
Je suis complètement perdu...

Reply

Marsh Posté le 22-02-2007 à 11:31:32   

Reply

Marsh Posté le 22-02-2007 à 13:05:34    

C'est bon j'ai réussi !!!!!!

Reply

Marsh Posté le 27-02-2007 à 23:16:14    

format_c a écrit :

C'est bon j'ai réussi !!!!!!


 
Bonjour
 
Dans ton cas qui semble etre du reporting l odbc n est pas adapté
Il te faut du batch , le declencheur est sur le 400
 

Reply

Marsh Posté le 01-03-2007 à 13:25:07    

Le souci c'est que je n'ai pas la main sur l'AS400. On a JD Edwards qui nous permet de créer des rapports, mais pour ce dont j'ai besoin (analyse de résultats couplés avec des données externe à DB2) ce n'est pas suffisant.

Reply

Marsh Posté le 06-03-2007 à 10:33:23    

araa a écrit :

Bonjour
 
Dans ton cas qui semble etre du reporting l odbc n est pas adapté
Il te faut du batch , le declencheur est sur le 400


 
Hello,
J'ai testé la création de batch via iséries, sur le poste client (fichier .dtf) et c'est bcp plus rapide que d'attaquer directement l'AS400 par odbc. Je pense que je vais opter pour cette solution.
1-> Run automatiquement ou par Shell exec du batch qui va générer un fichier de datas.
2-> Import de ce fichier dans Mysql (automatiquement, mais je ne sais pas encore comment faire).
3-> Affichage des datas via php.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed