Étiquette : AS400

[SQL] Concaténer en une seule chaine par ligne

[SQL] Concaténer en une seule chaine par ligne

Il existe, en MySQL, une fonction qui s’appelle GROUP_CONCAT et qui permet de concaténer – d’agréger – plusieurs éléments récupérés depuis une seule table en vue d’obtenir une seule chaine de caractères, par ligne de résultat.

Cela permet, par exemple, de récupérer les informations d’un livre, avec les auteurs séparés par des « , », et ce en une seule ligne de résultat. L’exemple repris dans la documentation de MySQL permet d’afficher le nom des étudiants avec leurs résultats aux différents tests.

Poursuivre la lecture « [SQL] Concaténer en une seule chaine par ligne »

[.NET] Accès à DB2 UDB iSeries + DataGridView

[.NET] Accès à DB2 UDB iSeries + DataGridView

On retrouve dans .NET les mêmes possibilités qu’en Java afin de se connecter à une base de données DB2 UDB sur un AS/400. En effet, lorsqu’on installe IBM i Access sur le PC, un kit de développement est inclus. Dedans on retrouve les assemblages nécessaires pour développer en .NET. Dans le menu démarrer vous devriez retrouver, dans le dossier IBM i, l’aide « Boite à outils de programmation« .

Poursuivre la lecture « [.NET] Accès à DB2 UDB iSeries + DataGridView »

[SQL] Mémo – Modifier le type d’une colonne

[SQL] Mémo – Modifier le type d’une colonne

Pour modifier le type d’une colonne dans une table DB2/400, vous pouvez utiliser la syntaxe ALTER TABLE … ALTER COLUMN. Il faudra cependant spécifier une clause supplémentaire : SET DATA TYPE. Cela vous permettra de changer la taille par exemple, ou bien passer d’un entier sur 4 octets à un entier sur 8. Exemple :

ALTER TABLE 'biblio.table' ALTER COLUMN email 
SET DATA TYPE varchar(50);

Dans cet exemple nous modifions la colonne qui contient l’e-mail en indiquant qu’on souhaite une chaine de caractères à taille variable d’un maximum de 50 caractères. Dans SQL Server, cela donnerait quelque chose comme ceci :

ALTER TABLE 'schema.table' ALTER COLUMN email varchar(50);

Et dans Oracle ou même MySQL :

ALTER TABLE 'schema.table' MODIFIY COLUMN email varchar(50);

Bon développement !

[SQL] Mémo – Dates dans DB2 UDB for iSeries

[SQL] Mémo – Dates dans DB2 UDB for iSeries

Sur l’AS/400, lorsqu’on utilise des champs de type date, il faut parfois utiliser certaines fonctions de conversion ou du moins utiliser une chaine de caractères d’un format spécifique. Il existe aussi un tas de fonctions qui permettent par exemple de récupérer le jour de la semaine, le libellé du mois, ou bien une représentation sous forme d’entier.

Poursuivre la lecture « [SQL] Mémo – Dates dans DB2 UDB for iSeries »

[AS400] Mémo – Commandes réseau

[AS400] Mémo – Commandes réseau

C’est en voyant intervenir un collègue il y a quelques jours que j’ai découvert qu’il existait des commandes sur l’AS/400 pour obtenir des informations réseau telles que la route empruntée pour contacter une IP distante ou simplement pour obtenir le délai de réponse d’un hôte en lui envoyant plusieurs paquets. Voici quatre commandes à retenir.

Poursuivre la lecture « [AS400] Mémo – Commandes réseau »

[SQL] Réaliser des “upserts” sur DB2/400

[SQL] Réaliser des “upserts” sur DB2/400

Beaucoup de SGBD proposent des requêtes plutôt simples pour réaliser ce qu’on appelle couramment des upserts (ou encore « insert-or-update« ). Cela permet donc d’effectuer une mise à jour si l’insertion échoue. Dans DB2/400, il faut utiliser une requête “MERGE INTO”.

Poursuivre la lecture « [SQL] Réaliser des “upserts” sur DB2/400 »

[SQL] Connaitre le RRN sur DB2/400

[SQL] Connaitre le RRN sur DB2/400

En SQL, il est possible de connaitre le numéro de ligne grâce à la fonction “Rownumber Over()”. Cependant, elle renvoie la position de l’enregistrement dans l’ensemble de données récupérées, alors que ce que nous souhaitons c’est retrouver le numéro relatif que la base de données lui a attribué lors de l’insertion. On peut même trier sur celui-ci pour obtenir les données dans leur ordre réel d’ajout.

Poursuivre la lecture « [SQL] Connaitre le RRN sur DB2/400 »

[SQL] Identifiant automatique dans DB2/400

[SQL] Identifiant automatique dans DB2/400

Étant donné qu’en DB2/400, il n’y ait pas de gestion de la clause “Auto Increment”, nous avons cherché le moyen de générer un identifiant unique lors de chacune des insertions. Deux moyens se présentent à nous : l’utilisation de séquences, dans le cas où la clé est composée d’un numéro avec des préfixes ou suffixes supplémentaires, ou bien mieux encore, la clause “Generated as identity” à utiliser lors de la création d’une table en SQL.

Poursuivre la lecture « [SQL] Identifiant automatique dans DB2/400 »

[SQL] Créer des triggers basiques sur DB2/400

[SQL] Créer des triggers basiques sur DB2/400

Il est toujours intéressant de savoir comment fonctionne une base de données s’exécutant sur un système que l’on connait peu, voire pas du tout. C’est la raison pour laquelle aujourd’hui, nous allons voir ensemble comment créer un trigger, ou en français, un déclencheur.

Poursuivre la lecture « [SQL] Créer des triggers basiques sur DB2/400 »