IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HyperFileSQL Discussion :

Procédure stockée avec n enregistrements


Sujet :

HyperFileSQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut Procédure stockée avec n enregistrements
    Bonne rencontre,

    J’ai l’habitude de travailler avec des PS en MSSQL mais pour l’un de mes projets, je dois mettre en place un Hyperfile client/server pour limiter les coûts.

    Soit, je désire donc comme à chaque fois externaliser toutes mes requêtes SQL (J’ai bossé dans un endroit, il était interdit d’écrire du SQL dans les applications) et là je suis un peu dépité. A première vue, il n’y pas moyen d’écrire directement les PS dans le SGBD… Mouais, je continue ma recherche et je vois que je dois me taper du Wlangage (pas du sql) dans les PS sous l’analyse. Je n’aime pas trop mais ce n’est pas trop grave en soi… Je fais quelques tests très simple et tout va bien jusqu’au moment ou je me dis, je vais simplement simuler un SELECT * FROM Client.

    Je me retrouve donc avec N enregistrement.

    Comment dois-je faire pour renvoyer mes N enregistrements à mon application pour l’afficher dans une table ? J’ai fais quelques recherche sur le web mais je n’ai pas trouvé.

    Ma PS doit renvoyer une source donnée ? Elle va encore exister à la sortie de la PS ?? Je dois avouer que je n’en sais trop rien…

    D’avance, merci pour votre aide.
    Raphaël.

    PS : Je suis en windev 16

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Qu'est ce qui vous fait dire que HF C/S est la bonne solution ?

    Il y a MS SQL Server Express qui monte jusqu'à 10go de données. Sinon vous avez POSTGRE en vraiment gratuit qui supporte beaucoup de fonctionnalités des gros SGBD commerciaux et a une fiabilité plus éprouvée que celle de HF C/S.

    Vu votre habitude en SQL, je déconseille l'utilisation de HF C/S.

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    même mySql peut-être une solution gratuite pas trop mal.

    Sinon pour revenir au sujet, il faut construire une chaine avec la requête et utiliser les fonctions hexecutesql. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    chaineRequete est une chaine
     
    chaineRequete = "SELECT * FROM Client"
    HExécuteRequêteSQL("MaRequete",hRequêteSansCorrection,chaineRequete)
    Bien sûr il faut ouvrir une connexion avant. Ensuite on peut utiliser les fonctions HLit, HlitPremier etc ... pour parcourir le résultat de la requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HLitPremier("MaRequête", hSansRafraîchir)
    à bientôt,

    Nicolas

  4. #4
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    Citation Envoyé par Nicolas_Jeanneau
    même mySql peut-être une solution gratuite pas trop mal
    MySql est très bien ... mais pas du tout gratuit

    Pour une utilisation personnelle tu peux l'utiliser gratuitement, même une entreprise d'ailleurs. Par contre dès que tu dois diffuser la dll de MySql avec ton application tu dois acheter les licences.

    Pour un client nous avons du acheter 600 licences, en négociant les prix à l'époque on avait obtenu la licence à 90 € pièce mais uniquement avec le moteur MyISAM (pas de FK, pas de transaction, pas de blocage ...)

    Maintenant les conditions ont surement changées depuis, mais vu qui possède MySql (Oracle) il y a peu de chance qu'il devienne gratuit

    @vmolines : salut, tu confirmes pour PostgreSQL ? totalement gratuit en diffusion ?

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Salut,

    Je confirme pour PostgreSQL !

    Q: How is PostgreSQL licensed? How much does it cost?
    A: PostgreSQL is released under the OSI-approved PostgreSQL License. There is no fee, even for use in commercial software products. Please see http://www.postgresql.org/about/licence
    Source : FAQ PostgreSQL

    J'ai volontairement omis MySQL dans les SGBD recommandés et tu fais bien de mentionner son coût que beaucoup oublient. Moins pire que HF C/S certes ; mais si on a le choix, autant s'orienter vers un truc vraiment sympa.

    Allez un peu de lecture :
    SQLPro retaille un costume à MySQL
    SQLPro toujours : Petit comparatif de performances sur un exemple d'agrégat d'intervalles (MSSQL, MYSQL, PostgreSQL)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Bonne rencontre,

    Je me suis sans doute mal exprimé, le but n’est pas de savoir comment faire une requête ou exploité mes résultats. Le but est de savoir comment récupérer mes résultats de ma PS à ma fenêtre.

    Imaginons que j’ai une fenêtre « clients » avec une simple table « maTable ».

    Dans ma procédure stockée, j’ai un truc du genre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HExécuteRequête(REQ_test)
    //REQ_test est une requête stockée.
    // Je n’arrive pas à déterminer le traitement qui va me renvoyer mes N enregistrement.
    Dans le code de ma fenêtre, je veux récupérer les résultats que j’ai obtenus via ma procédure stockée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HExécuteProcédure(ConnexionHyperFilesSql,ListeClientActif)
    //Je ne sais pas ce que je dois recevoir pour traiter mes enregistrement.
    Certes, je peux faire des Hlit au sein de cette PS, pas de soucis. Par contre, je ne sais pas comment renvoyer l’ensemble des résultats que j’ai obtenu à la fenêtre « clients » pour l’afficher dans « maTable »

    Je dois renvoyer quoi ? Une source de données temporaire ?! Sauf qu’une source de données est directement détruite à la fermeture du traitement où la source de données à été déclarée.

    http://www.pcsoft-windev-webdev.com/..._Stockees.html

    J’ai été voir cette vidéo mais on n’a qu’un résultat dans ce cas ce qui ne m’aide pas spécialement.

    Maintenant pour en venir à la question de HF C/S. D’habitude, on travail avec du MS SQL Server mais pour limiter le cout et aussi pour découvrir un nouveau produit, on a pensé à HF C/S histoire de voir ce que ça valait vraiment.

    C’est vrai qu’il y a la version MSSQL express pourrait répondre aux besoins du client et ça m’éviterait d’essayer de comprendre le truc du dessus. C’est à réfléchir vu que rien n’est encore fait mis à part l’analyse et le prototypage horizontal.

    PostgreSQL, je ne connais que de nom. Quant à MySQL... C'est un vrai SGBD ? Il y a encore du boulot quand même.

    Néanmoins, j’aimerais quand même bien comprendre le fonctionnement des PS de windev avec HF C/S. Je serais frustrer de rester sur une incompréhension.

    D’avance, merci pour votre aide.

    Raphaël.

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Je n'ai jamais eu à le faire mais je pense qu'un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sdResultatPS est une source de donnees
     
    HExécuteRequêteSQL(sdResultatPS, hRequêteSansCorrection, "SELECT Col1, ..... FROM ProcedureStockeeSQLServer(.....)")
    HLitPremier(sdResultatPS)
    TANTQUE PAS HEnDehors(sdResultatPS)
    	TableAjouteLigne(MaTable, sdResultatPS.Col1, ... )
    	HLitSuivant(sdResultatPS)
    FIN
    HAnnuleDeclaration(sdResultatPS)

    serait une syntaxe potentiellement valable si c'était supporté (à tester).

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sdResultatPS est une source de donnees
     
    HExécuteRequêteSQL(sdResultatPS, hRequêteSansCorrection, "ProcedureStockeeSQLServer(.....)")
    HLitPremier(sdResultatPS)
    TANTQUE PAS HEnDehors(sdResultatPS)
    	TableAjouteLigne(MaTable, sdResultatPS.Col1, ... )
    	HLitSuivant(sdResultatPS)
    FIN
    HAnnuleDeclaration(sdResultatPS)
    Si MSSQL Express convient, foncez. Ne vous attardez pas sur HF C/S qui ne vous apportera rien. Si vous voulez passer du temps à vous former, passez le sur des choses utiles.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    J'ai déjà fait des PS MSSQL avec Windev donc ça devrait aller de ce côté là.

    Citation Envoyé par vmolines Voir le message
    Si MSSQL Express convient, foncez. Ne vous attardez pas sur HF C/S qui ne vous apportera rien. Si vous voulez passer du temps à vous former, passez le sur des choses utiles.
    Tiens, vous n'auriez pas un test digne de ce nom de HF C/S avec d'autres SGBD ?

    J'ai fait quelques recherches sur le forum mais sans succès. Du moins les posts sont un peu vieux comme celui-ci : http://www.developpez.net/forums/d50...-db-hyperfile/

    Il me semblait qu'il y a avait un organisme indépendant qui réalisait des tests mais je reviens pas sur le nom.

  9. #9
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Bonjour,

    Pour compléter :

    MS SQL Server 2008 R2 Express est gratuit en diffusion et seulement limité à 10 Go par base.
    En revanche, il y a une limite de 1 Go de RAM de cache.

    Je confirme que postgres est totalement gratuit en diffusion, très performant et côté fonctionnalités, postgres est devant MS SQL Express qui semble bridé sur certaines fonctionnalités un peu pointues, par exemple le partitionnement de tables qui n'est pas dans la version Express mais uniquement dans la version Enterprise (près de 10 000 euros/serveur !).

    Cotés benchs, je n'en connais pas avec HF C/S. C'est effectivement un manque.

    Avant d'utiliser HF C/S, je te conseille de lire sur les forums les limites de HF C/S en ce qui concerne les jointures externes.

    Cdlt, Arnaud.

  10. #10
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour Raphael1980,

    Je pense que tu te trompes de voie.

    Le monde Windev n'est pas conçu comme les autres.
    La base de données était historiquement locale, ou réseau, mais avec des parcours contrôles par le programme. Les procédures stockées ne sont arrivées qu'après. Elles n'étaient pas là pour faire ce que tu veux.

    En résumé, la procédure stockée (en Windev!) ne sert qu'à te déporter une partie du traitement. Très pratique quand tu es sur un réseau un peu lent, ou des configs un peu légères (mes accès à partir d'un PDA sont faites comme ça par exemple).

    Par contre, le HExecuteRequeteSQL, garde le en appel à partir de l'appli, tu y gagnera en vélocité.

    Pour ce qui est de faire les modifs de procédures stockées dans le projet, et pas dans le SGBD, encore une fois ça vient de la conception de Windev.

    EDIT :
    Pour les limitations dues aux jointures externes dont parle Arnaud B. dans le post juste avant moi, je dirais qu'elles fonctionnent plutôt bien maintenant. Par contre le moteur contient toujours quelques bugs, et quand peu de gens les rencontrent, PCSoft n'est pas pressé de le corriger.
    Je leur ai personnellement envoyé plusieurs fois depuis le 3 novembre 2008 un bug sur un
    SELECT SUM(MonChamp) FROM MaTable WHERE UneConditionBienParticulière
    qui me renvoie DEUX lignes... ! Incroyable mais jamais réglé)

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Bonne rencontre,

    Merci à vous tous pour vos retours qui m'ont agréablement guidé.

    SELECT SUM(MonChamp) FROM MaTable WHERE UneConditionBienParticulière
    qui me renvoie DEUX lignes... ! Incroyable mais jamais réglé)
    Hein hein... Ça fait un peu peur ça quand même...

    Je vais donc rester sur des outils que je connais comme MS-SQL.

    Postgres peut m'intéresser mais sans doute plus sur un projet perso histoire de tester un peu ce SGBD.

    Amicalement,
    Raphaël.

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Avec HF, j'ai déjà eu droit à un COUNT qui ne renvoyait aucune ligne si ça peut vous rassurer .

  13. #13
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Pour les jointures externes, je n'irai pas jusqu'à dire qu'elles fonctionnent bien.

    Le gros problème est que toute condition mise dans la jointure (T1 LEFT OUTER JOIN T2 ON (T1.ID2 = T2.ID2 AND maconditionsurT2)) sera interprétée comme une condition directement dans la clause WHERE.

    Ce qui n'est pas conforme à la norme SQL et n'est évidemment pas le cas dans TOUS les autres SGBD du marché.

    Cdlt, Arnaud.

  14. #14
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Ne serait-il pas possible de faire renvoyer une source de données par la PS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sdResultatPS est une source de donnees
     
    sdResultatPS = HExecuteProcédure(cnx1, "ProcedureStockeeSQLServer")
    ou de passer par adresse une variable de type Source de données à la PS pour qu'elle la remplisse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sdResultatPS est une source de donnees
     
    HExecuteProcédure(cnx1, "ProcedureStockeeSQLServer", sdResultatPS)
    Je n'ai jamais essayé, mais j'aurais été tenté par ce genre de choses si c'est autorisé.

    Si quelqu'un a testé...

    Ceci dit, il est vrai que si une PS se contente de renvoyer une source de données, autant exécuter une requete depuis le client...

    Cdlt, Arnaud.

    Citation Envoyé par vmolines Voir le message
    Je n'ai jamais eu à le faire mais je pense qu'un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sdResultatPS est une source de donnees
     
    HExécuteRequêteSQL(sdResultatPS, hRequêteSansCorrection, "SELECT Col1, ..... FROM ProcedureStockeeSQLServer(.....)")
    HLitPremier(sdResultatPS)
    TANTQUE PAS HEnDehors(sdResultatPS)
    	TableAjouteLigne(MaTable, sdResultatPS.Col1, ... )
    	HLitSuivant(sdResultatPS)
    FIN
    HAnnuleDeclaration(sdResultatPS)

    serait une syntaxe potentiellement valable si c'était supporté (à tester).

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sdResultatPS est une source de donnees
     
    HExécuteRequêteSQL(sdResultatPS, hRequêteSansCorrection, "ProcedureStockeeSQLServer(.....)")
    HLitPremier(sdResultatPS)
    TANTQUE PAS HEnDehors(sdResultatPS)
    	TableAjouteLigne(MaTable, sdResultatPS.Col1, ... )
    	HLitSuivant(sdResultatPS)
    FIN
    HAnnuleDeclaration(sdResultatPS)
    Si MSSQL Express convient, foncez. Ne vous attardez pas sur HF C/S qui ne vous apportera rien. Si vous voulez passer du temps à vous former, passez le sur des choses utiles.

  15. #15
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Ah, et pendant que tu y es, renseigne toi sur les forums et partout où tu peux :
    La différence entre les ordres Hxxx et les SQLxxx.
    Comme tu as l'air d'être au début du développement, c'est le moment où jamais de le faire.

    Le but est de t'éviter de programmer avec des ordres qui fichent la pagaille dans le moteur de la base.

    Mes compétences en moteur ne sont pas assez élevées pour t'expliquer précisément pourquoi, mais les gens un peu sérieux qui ont essayé les deux pistes semblent privilégier les ordres SQLxxx : Une histoire de pointeurs sur la base de données.

    Par contre, je t'avertis de suite, les ordres SQL sont moins biens dé-servis dans Windev, et il te faudra tout coder à la main. De plus, tu auras moins de monde qui saura te répondre sur les forums.

    Voila, j'espère que ça t'aidera dans tes choix.

  16. #16
    Membre habitué
    Homme Profil pro
    Main frame, Unix, Windows, AS400
    Inscrit en
    Mars 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Main frame, Unix, Windows, AS400
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2011
    Messages : 111
    Points : 171
    Points
    171
    Par défaut
    Je confirme les suggestions. J'ajoute ma griffe à cette discussions.

    Je fais tout en SQL pour les traitements SELECT, UPDATE, DELETE, INSERT sur la BD. Je suis en WIN16 avec la BD HF C/S.

    Mon approche est très prudente et je la recommande (même avec les autres technologies).

    J'utilise un tableau à 3 dimensions dont j'insère les rubriques à traiter, les valeurs trouvées et le type de rubrique. Je remplis une table (sur fenêtre) avec ce tableau.

    Je ne fais pas confiance à l'existence de l'intégrité référentielle et normalisation... Ces concepts sont biens définis mais souvent mal programmés... Je préfère sélectionner manuellement. Tu verras qu'avec un kit d'outils bien montés, tu pourras devenir très efficace. Voici mon code

    Bon Dev

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Procédure stockée avec retour de curseur
    Par Oufti dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 07/11/2005, 22h40
  2. Procédure stockée avec SELECT UNION
    Par maredami dans le forum Oracle
    Réponses: 4
    Dernier message: 07/11/2005, 11h05
  3. Procédure stockée avec serveur lié et paramètres
    Par AITOZ dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/10/2005, 17h51
  4. Procédure stockée avec param de sortie:marchepas av ADO
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/10/2004, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo