Développement Steganux a formulé ce mardi :
Bonjour,
Je possède actuellement une appli avec une base de données Hyperfile
classique, avec des accès hlit, hlitrecherche, et des requêtes, ainsi
que des identifiants automatiques dans les fichiers.
J'aimerais ajouter une option a mon appli pour qu'elle puisse également
être couplée avec une base de données Oracle ou Sql Server ou MySQL, c'est à dire qu'au départ
l'utilisateur choisira entre une base Hyperfile ou une autre base. J'utiliserai bien sur l'accés natif fournit par pcsoft adapté à la base choisie.
Normalement il suffit de créer une nouvelle connexion avec les
paramètres de la base oracle et d'appeler hchangeconnexion, donc pour ça
pas de problème.
J'aimerais d'abord savoir avec quelle base j'aurais le moins de travail d'adaptation à faire.
Ensuite comment sont gérés les identifiants automatiques ?
Avec MySQL ou SQLServer, les hcreationsiinexistant s'en sortent bien avec les identifiants automatiques ou les contraintes (décrites dans l'analyse comme des clés composées).
En revanche, pour Oracle c'est plus corsé, puisque les identifiants automatiques n'ont pas d'équivalent.
Ce que je te conseille de faire, c'est de ne faire de hcréationsiinexistant que dans le cas où tu es en hyperfile, et dans les autres cas, de tester l'existence des tables et de lancer un script de création.
Ca te permettra, notemment pour Oracle, de générer des triggers avec des séquences pour simuler le fonctionnement de l'incrément automatique.
Pour les requêtes paramétrées, ca risque d'être plus ou moins compliqué. Si tes requêtes restent simples, ca ira. Mais dans des cas où la requête est un peu particulière, et si des fonctions sont utilisées, sachant que les langages diffèrent selon les bases, tu seras coincé.
Dans ces cas là, il vaudra mieux utiliser hExecuteRequeteSQL et faire des requêtes spécifiques à chaque base.
Pour les ordres H, ca marche plutôt bien.
Gilles.