Étiquette : AS400

[AS400] Transférer un Save File par FTP

[AS400] Transférer un Save File par FTP

Pour transférer un fichier d’un AS/400 à un autre, de multiples solutions sont disponibles, mais celle qui a retenu notre attention est celle qui prévoit l’emploi du client FTP intégré au système. Dans notre cas, nous voudrions transférer un fichier de type « Save File » vers un AS/400 distant.

Ces fichiers permettent en fait de sauvegarder des objets (librairies, fichiers) sans avoir à passer par des périphériques tels que les lecteurs de bandes. Ils peuvent eux-mêmes être sauvegardés sur cassette par la suite.

Poursuivre la lecture « [AS400] Transférer un Save File par FTP »

[SQL] Prédicat JOIN ou clause MERGE ON nvalide

[SQL] Prédicat JOIN ou clause MERGE ON nvalide

Nous allons bientôt passer en version V7R1 du système i de IBM et nous testons nos applications. Nous avons rencontré plusieurs fois l’erreur suivante : JOIN predicate or MERGE ON clause not valid (SQL0338). Qu’est-ce que cela signifie ? Et bien c’est très simple : le moteur SQL de DB2 a été amélioré au fil du temps et bien sûr, il est bien plus strict qu’auparavant. Cela peut arriver si vous utilisez des jointures implicites pour certaines tables (la condition se trouve alors dans la clause « WHERE »), couplées à des jointures gauche/droite/interne/externe (JOIN ON) à la suite. Cela arrive également si l’ordre des jointures ne peut être correctement vérifié par le moteur.

Poursuivre la lecture « [SQL] Prédicat JOIN ou clause MERGE ON nvalide »

[Java] Différentes possibilités avec l’AS/400

[Java] Différentes possibilités avec l’AS/400

Les librairies Java fournies par IBM contiennent de nombreuses classes qui permettent de se connecter au système i, d’appeler des programmes CL ou RPG-LE, ou qui autorisent l’accès à la base de données DB2. Il existe même deux méthodes pour lancer un programme.

Poursuivre la lecture « [Java] Différentes possibilités avec l’AS/400 »

[SQL] Date du jour – X sur DB2

[SQL] Date du jour – X sur DB2

Dans vos applications, vous avez sûrement dû manipuler des dates aussi bien dans votre outil de développement que dans une requête SQL. Sur DB2, pour récupérer la date du jour à laquelle on soustrait un nombre X de jours, et ce dans un format final AAAAMMJJ, soit l’année sur 4 chiffres, le mois sur 2 et les jours sur 2 chiffres également, voici comment procéder:

SELECT 
   YEAR(date(days(CURRENT DATE)-x)) * 10000 + 
   MONTH(date(days(CURRENT DATE)-x)) * 100 + 
   DAY(date(days(CURRENT DATE)-x)) 
FROM sysibm/sysdummy1

La variable « x » doit être remplacée par le nombre de jours à soustraire de la date, qui est transformée en jour. La requête initiale pour obtenir la date du jour est la suivante:

SELECT 
   YEAR(CURRENT DATE) * 10000 + 
   MONTH(CURRENT DATE) * 100 + 
   DAY(CURRENT DATE ) 
FROM sysibm/sysdummy1

A présent, vous pouvez manipuler les dates sans rencontrer trop de difficultés…

[SQL] Les séquences sur DB2/400

[SQL] Les séquences sur DB2/400

Vous êtes dans une situation où il est impossible de créer une clé avec un incrément automatique ? Dans ce cas vous pouvez utiliser un objet qu’on appelle couramment « séquence ». Celui-ci correspond en fait à une suite d’entiers que l’on peut manipuler et même « configurer » de sorte à ce qu’il s’incrémente de telle ou telle manière. C’est une très bonne solution pour faire face aux problèmes de concurrence.

Poursuivre la lecture « [SQL] Les séquences sur DB2/400 »

[SQL] Conversion chaînes et numériques AS400

[SQL] Conversion chaînes et numériques AS400

Ce matin, je me suis battu pour convertir un numérique en chaîne de caractères afin de le comparer à, vous devinez, une chaine. Il faut savoir que lorsque l’on exécute la requête SQL via l’émulation 5250 (commande « strsql »), les conversions se font automatiquement, du moins pour la comparaison que j’effectuais. Bien sûr, ce n’est pas le cas lorsque l’on passe par le module Easycom for WinDev, puisqu’il faut bien entendu mapper les données : elles doivent donc être d’un format équivalent pour que la comparaison puisse se faire. Mais voyons ensemble ce que j’avais tenté en premier lieu…

Poursuivre la lecture « [SQL] Conversion chaînes et numériques AS400 »