/* */

Blog Infraworld

Concaténation d’enregistrements SQL Server avec XML PATH

Dans le cadre d’une extraction de données sous Microsoft SQL Server, j’ai du concaténer différentes lignes ayant le même identifiant afin de les regrouper en une seule. Je m’explique… J’ai une table familles avec des codes clients uniques (champ accountnumber), dans cette table les clients ont une ou plusieurs familles (champ value) pour les identifier […]

> Lire la suite...

Définir un compte de démarrage pour le service Agent SQL Server

Ayant voulu migrer des travaux SQL Server d’une instance 2008 à une instance 2012 fraichement créée, je me retrouve face à une erreur à chaque lancement du travail : Exécuté en tant qu”utilisateur : NT SERVICE\SQLAgent$SQL2012. Échec de l’ouverture de session de l’utilisateur ‘NT SERVICE\SQLAgent$SQL2012’. [SQLSTATE 28000] (erreur 18456). L’étape a échoué. Pour régler ce problème il […]

> Lire la suite...

Problème SQL Server ANSI_NULLS et ANSI_WARNINGS avec PHP

En faisant des requêtes entre 2 instances différentes de SQL Server via le Microsoft SQL Server Management Studio, je n’avais aucun problème mais quand j’ai voulu passer ma requête via une page PHP, je me suis pris ce joli message d’erreur : Warning: mssql_query() [function.mssql-query]: message: Les requêtes hétérogènes requièrent les options ANSI_NULLS et ANSI_WARNINGS […]

> Lire la suite...

Trigger SQL Mouvement d’entrée Sage L100

Les mouvement d’entrée sans montant = pas bien 😉 ! Comme je n’ai pas trouvé d’options dans la Gestion Commerciale de Sage permettant d’éviter ce genre d’oubli, j’ai créé un petit trigger SQL… Les mouvements d’entrée vont s’insérer dans la table F_DOCLIGNE, le trigger devra donc être à l’écoute des insertions et mises à jour […]

> Lire la suite...

Mise à jour depuis Excel des tarifs Gestion Commerciale Sage

Depuis la Gestion Commerciale, il est possible d’appliquer une hausse des tarifs via un assistant (Fichiers > Outils > Mise à jour des tarifs), mais cela ne convient pas toujours. L’outil est pourtant assez fin, on peut appliquer une hausse/baisse par montant ou pourcentage, contrôler plus ou moins l’arrondi etc… Pour vérification, on peut ensuite […]

> Lire la suite...

L’utilisateur est déjà connecté Sage L100

Ça vous est forcément déjà arrivé si vous êtes utilisateur de la Gestion Commerciale, la Comptabilité ou un autre produit Sage : le message “L’utilisateur … est déjà connecté. Veuillez saisir un autre nom d’utilisateur.“. Coupure réseau ou autre, votre nom d’utilisateur n’est pas forcément utilisé, mais n’a pas été déconnecté dans la base. Pour […]

> Lire la suite...

SQL Server : échec Update avec SET et QUOTED_IDENTIFIER

Lors de migrations de logiciels, les travaux SQL qui fonctionnaient parfaitement avant ont un fâcheuse tendance à souffrir des différences de configuration imposées par les nouvelles bases SQL Server. Je me suis aperçu récemment après un passage vers Microsoft Dynamics CRM que certains travaux avaient cette erreur : “Exécuté en tant qu’utilisateur : AUTORITE NT\Système. Échec […]

> Lire la suite...

Tri aléatoire avec SQL Server

Pour renvoyer des enregistrements aléatoire, SQL Server propose la fonction RAND(), seulement une fois lancée, les résultats seront toujours les mêmes… Du coup pour une requête réutilisable plusieurs fois il vaut mieux utiliser la fonction NEWID() qui calcule pour chaque ligne un identifiant unique réellement aléatoire, et de faire le tri dessus. Il faudra ensuite […]

> Lire la suite...

Problème débit de stock dans Gestion Commerciale

On m’a soumis un problème de non-débit de stock en Bon de Fabrication sur une référence aujourd’hui (Gestion Commerciale Sage). A la création de l’article, le suivi de stock avait été défini sur aucun au lieu de CMUP Pour le changer, il faut faire un update de AR_SuiviStock et le passer de 0 à 2. […]

> Lire la suite...

Remplacement de caractères dans base de données

Fan du ctrl+h ? Le rechercher/remplacer est un indispensable et possède évidemment son équivalent en SQL. La requête est tout bête mais mérite largement d’être gardée sous le coude ! UPDATE table SET colonne = replace(colonne, ‘ancien’, ‘nouveau’); Prenons par exemple une table compte avec des numéros de téléphone tel avec des points, vous souhaitez […]

> Lire la suite...