1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
PROCEDURE SQL_Retourner_Multiple_Valeur(uneTable, tabValeur)
// Requête pour remplir le tableau des données de la table
sUneRubrique, sUneValeur est une chaîne = ""
// parcours de la première ligne du tableau pour l'obtention des rubriques
sValeurRetournée est une chaîne = Tableau_X_Dimension_Vers_Dimension_Y_En_ChaineFormaté(",",tabValeur,1, 3)
// Initialisation de la requête
sUneRequêteSQL est une chaîne = ChaîneConstruit("SELECT %1 FROM %2", sValeurRetournée ,uneTable)
// Exécution de la requête
sdRequête est une Source de Données
bEnregistrement_Existe est un booléen = HExécuteRequêteSQL(sdRequête,GEN_CONNEXION,hRequêteDéfaut,sUneRequêteSQL)
// Lecture et retour des informations
SI bEnregistrement_Existe ALORS
// Lecture du premier enregistrement de la requête
HLitPremier(sdRequête)
TANTQUE PAS HEnDehors()
// La deuxième ligne du tableau contient l'information retournée pour chaque rubrique
// Et la troisième, le type de rubrique : date, heure, texte, etc
POUR i = 1 _A_ tabValeur..Occurrence/3
sUneRubrique = {sdRequête + "." + tabValeur[i][1],indRubrique}..Type
sUneValeur = {sdRequête + "." + tabValeur[i][1],indRubrique}
sUneValeur = Valeur_Selon_Type_Rubrique(sUneValeur, sUneRubrique)
tabValeur[i][2] += sUneValeur + ";"
sUneRubrique = Rubrique_En_Chaine_Selon_Type_Rubrique(sUneRubrique)
tabValeur[i][3] = sUneRubrique
FIN
HLitSuivant(sdRequête)
FIN
// Retrait du dernier caractère et mise sous une forme de tableau
POUR i=1 _A_ tabValeur..Occurrence/3
sUneValeur = tabValeur[i][2]
sUneValeur = Gauche(sUneValeur,Taille(sUneValeur)-1)
tabValeur[i][2] = sUneValeur
FIN
bEnregistrement_Existe = Vrai
SINON
Erreur("Erreur dans l'exécution en lecture de la requête SQL" + RC + ErreurInfo())
bEnregistrement_Existe = Faux
FIN
HAnnuleDéclaration(sdRequête)
RENVOYER bEnregistrement_Existe |
Partager