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

SQLite Discussion :

Ajout de fonctions personnalisées


Sujet :

SQLite

  1. #1
    Membre actif Avatar de gassi64
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 255
    Points : 230
    Points
    230
    Par défaut Ajout de fonctions personnalisées
    Bonjour,

    Je crée une fonction personnalisée pour sqlite3 et je souhaite l'utiliser dans mes requêtes après l'avoir ajoutée via sqlite3_create_function().

    Je souhaiterais coder une fonction qui parcourt l'ensemble des autres données pour comparer les valeurs entre elles en l'utilisant ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT valueToto, resultatComparaison(valueToto) FROM maTable
    Le but est de comparer valueToto de la ligne donnée pour la comparer à toutes les autres et sortir un résultat pour chaque ligne. (donc si on a 50 lignes, avoir 50*50 calculs).

    Comment faire en sqlite3 en c/c++ pour réussir à trouver l'ensemble des autres valueToto pour les comparer une à une avec la current valueToto ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void resultatComparaison(sqlite3_context *context, int argc, sqlite3_value **argv){
        if( ! argc==1 )
            return;
     
        /* Comment faire le parcours des autres données :oops: ??? */
     
        /* Le resultat de ma fonction pour le SELECT */
        sqlite3_result_xxx(context, rVal);
    }
    J'imagine qu'on doit pouvoir faire cela car il existe bien une fonction min() qui doit bien parcourir les autres données pour déterminer la valeur finale ?!

    En espérant avoir une indication / piste, merci.

  2. #2
    Membre actif Avatar de gassi64
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 255
    Points : 230
    Points
    230
    Par défaut
    Finalement j'ai trouvé une explication très claire dans le livre "Using SQLite" (pour moi plus claire que la doc officielle).

    La solution théorique est de diviser les opérations en deux fonctions :
    - une pour actualiser une structure qui sert de contexte temporaire data par data
    - une pour finaliser le résultat et retourner la valeur voulue dans l'appel de la méthode du SELECT en utilisant un GROUP BY.

    Chapter 9: SQL Functions and Extensions
    Aggregate functions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Ajout d'une description a une fonction personnalisée
    Par laaich dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/10/2012, 09h01
  2. [TinyMCE] [3.3] Ajouter fonctions personnalisées
    Par Kikkoman dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 21/05/2010, 14h10
  3. [XL-2003] ajouter fonctions personnalisées excel 2003
    Par groclod dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/04/2009, 00h11
  4. Réponses: 13
    Dernier message: 06/02/2006, 10h12
  5. [VBA-E] Ajouter des fonctions dans Excel
    Par Clezio dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2004, 01h18

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