PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Connaître la structure d’une base de données externe
Connaître la structure d’une base de données externe
Iniciado por michel.lesty, 26,abr. 2019 11:06 - 3 respuestas
Publicado el 26,abril 2019 - 11:06
Bonjour, je souhaite que l’utilisateur de mon logiciel (qui ne contient pas d’analyse) puisse ouvrir une base de données externe, sa base de données à lui, dont je ne connais pas à priori le type (oracle, AS400, SQL server, etc.), pour y requêter les données qu’il souhaite communiquer à mon logiciel sous forme de fichier .csv.

En d’autre terme, est-il possible, pour l’utilisateur, de réaliser « à la volée » l’analyse de la structure d’une base de données quelconque non prévue à priori dans le projet ?

Merci d’avance
Michel
Miembro registrado
299 mensajes
Publicado el 26,abril 2019 - 11:40
Ca me fait plaisir de lire des sujets comme ça.
J'ai un logiciel qui fonctionne sur ce principe et le client apprécie de pouvoir maitriser ses données et de pouvoir ajouter un champ dans sa base par un simple script.


Je gère mes accès aux données au travers d'une classe
En tête de la classe j'ai cette structure
LO_StructureType est une structure
LC_Nom est une chaîne
LC_Type est une chaîne
LN_Taille est un entier
FIN

LT_StructureTable est un tableau de LO_StructureType


J'utilise les fonctions SQL.
LC_Global est une chaîne
LT_StructureL est un tableau de chaînes
LT_StructureC est un tableau de chaînes

LC_Global = SQLColonne(LO_Handle, PC_Table, Vrai)
LT_StructureTable.SupprimeTout()
ChaîneVersTableau(LC_Global, LT_StructureL, RC)
POUR i = 1 _À_ LT_StructureL.Occurrence()
ChaîneVersTableau(LT_StructureL[i], LT_StructureC, TAB)
LO_TMP est un LO_StructureType
LO_TMP.LC_Nom = SansEspace(LT_StructureC[1])
LO_TMP.LC_Type = SansEspace(LT_StructureC[2])
SI LT_StructureC[2] = "T" ALORS
LO_TMP.LN_Taille= Val(LT_StructureC[4])
SINON
LO_TMP.LN_Taille= 0
FIN
LT_StructureTable.AjouteLigne(LO_TMP)
FIN
Mensaje modificado, 26,abril 2019 - 11:43
Publicado el 26,abril 2019 - 14:55
Merci, cela m’éclaire déjà bien.
Pour que mon projet soit ouvert à tous les types de bases non connue a priori (HFSQL, Oracle, AS400, SQL server, etc.), tous les modules additionnels de Windev doivent je suppose être installés, cela pose-t-il un problème ?
Miembro registrado
299 mensajes
Publicado el 26,abril 2019 - 15:44
J'ai connecté mon application à SQL Serveur via ODBC.
J'ai des volumes de 20 à 30000 lignes et des performances correctes.

Donc pas de modules additionnels (ni de surcoût non plus d'ailleurs)

Je n'ai pas testé avec Oracle et pour HFSQL j'ai une autre classe avec le même nom et les noms de méthode mais qui travaille en accès direct.