PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Combiner 2 bases de données
Combiner 2 bases de données
Débuté par Hacyrak, 26 mai 2020 11:38 - 7 réponses
Posté le 26 mai 2020 - 11:38
Bonjour,
J'ai un projet où je dois récupérer des informations d'une base SQL Server.
Ce projet contiendra sa propre base pour des informations n'existant pas sur la base SQL Server.

J'arrive bien à me connecter à la base SQL Server et je visualise les infos.
Sur les tables du SQL Server j'ai besoin d'informations n'existant pas dessus à ajouter uniquement dans les données de l'application WinDev.

Par exemple :
J'ai une table client sur SQL Server (qui contient plein de champs Nom, Ville, Pays ...).
Mon application va gérer des groupes de clients (ce que ne fait pas celle de SQL Server).
J'ai donc une table HF Groupe (ID, Nom)
Je ne peut pas toucher aux tables SQL Server (contient juste les données que je dois visualiser).
Comment puis-je avoir une table HF Client qui contient les données du SQL Server dont je dois me servir uniquement (je n'ai pas besoin tout les champs existant) et qui se met à jour à chaque modification sur le SQL Server ; et dont je peut ajouter un IDGroupe sans que les données du SQL Server soit modifier ?
Membre enregistré
6 messages
Posté le 26 mai 2020 - 14:36
Avez-vous pensé à créer une base sqlserver à côté de celle de production et qui contiendra vos tables (groupe..)
Vous n'aurez plus à vous soucier de synchronisation de données et vous pourrez, avec les droits qui vont bien, faire un select entre les deux.

Select b1. Nom, b2.groupe from basedeproduction B1, mabase B2 where ...

Ça me semble moins risqué...
Membre enregistré
227 messages
Popularité : +18 (20 votes)
Posté le 26 mai 2020 - 16:20
Bonjour,

Faite une annalyse avec le fichier SQL SERVEUR et un autre fichier contenant les nouvelles données puis faites une vues (matérialisé) associant les deux quand vous lancer votre application windev vous aurez juste à mettre a jour correctement et au bon moment votre vue et vous pourrez travailler dessus de manière transparente

Vous pouvez le faire sur SQL serveur les vues seront que plus performante que sur windev.
Membre enregistré
1 144 messages
Popularité : +50 (142 votes)
Posté le 26 mai 2020 - 18:25
Bonjour,
Pourquoi ne pas simplement créer une procédure qui se connecte à cette base SQL et qui exécute une requête pour récupérer les informations.
Il suffit ensuite de se reconnecter à l'analyse de l'application.
Il reste éventuellement à mettre un timer sur cette procédure pour l'exécuter périodiquement.

J'imagine que vous n'avez aucun droit sur le serveur SQL et que vous ne pouvez que lire des données ?!

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formateur bureautique (individualisation) : https://coursdinfo.net
Posté le 27 mai 2020 - 08:57
Bonjour,
Merci à tous.
@Francis : le problème étant que je dois ajouter des informations à client mais je n'ai aucun droit sur la base sql server.
@Gurdarr : si je comprend bien je crée une vue mixte sur ma base HF + la base SQL Server ? Avec une table client-HF qui contient mes données et la table client sql server ?
@Thierry : Oui je n'ai que des droits en lecture sur la base SQL Server. Lors de l'exécution de cette procédure comment faire pour ne mettre à jour que ce qui aura été modifié (évitant ainsi de bloquer l'application le temps de lire chaque enregistrement et effectuer la mise à jour de mes tables ?)
Membre enregistré
111 messages
Popularité : +13 (13 votes)
Posté le 27 mai 2020 - 10:03
Bonjour,

Voici ce que je fais <très> régulièrement :

J'ajoute mes tables dans la base SQL Server (préfixées pour les isoler, par exemple EXT_CLIENT pour ma table Clients).
Je crée des vues afin d'agréger les informations de l'ERP avec les miennes (toujours préfixées, par EXT_V_LST_CLIENT).
J'interroge mes vues avec des requêtes depuis mon application.

Le gros avantage est que toutes mes données sont dans la même base que celles de l'ERP et qu'elles sont intégrées dans les plans de maintenance de SQL Server.

Pour être tranquille, je crée (ou fais créer) un utilisateur spécifique sur l'instance SQL Server.

--
Erick
Membre enregistré
1 144 messages
Popularité : +50 (142 votes)
Posté le 27 mai 2020 - 13:09
C'est un peu paradoxal. Vous devez modifier le contenu de la base de données SQL server, mais vous n'avez aucun droit en écriture ?

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formateur bureautique (individualisation) : https://coursdinfo.net
Posté le 27 mai 2020 - 14:20
Je ne sais pas si c'est paradoxal mais je ne peut pas toucher à la base sql server par contre mon programme a besoin de visualiser ces données à jour et d'infos supplémentaire n'existant dans celle là qui seront elles modifiable.
Je viens de tester le système de vue proposer par @Gurdarr cela fonctionne très bien me permettant de visualiser des données HF et SQL Server.

Merci