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

Développement de jobs Discussion :

Appel à une fonction PostgreSQL


Sujet :

Développement de jobs

  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut Appel à une fonction PostgreSQL
    Bonjour,

    J'ai créé une fonction dans PostgreSQL et je voudrais dans TOS faire appel à cette en fonction en lui passant des paramètres que je récupère via un tmap.
    Je ne sais pas quel composant utiliser pour ce faire.
    Je me disait que un tPostgresqlInput pourrais être une bonne solution.....mais je vois pas.

    Merci de votre aide.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 36
    Points
    36
    Par défaut
    Bonjour,

    Essaie de faire appel à ta fonction avec un tPostgresqlRow en lui passant les paramètres avec des variables globales ou des contexts.

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    En fait je voudrais plutôt créer des variables locale en fonctions d'une table et de pourvoir les passer en paramètres dans ma function postgres.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 36
    Points
    36
    Par défaut
    Ce Schéma peut fonctionner du coup vu que tu as parlé d'un tmap :

    --> TMAP --> tFlowToIterate --> tPostgreSQLRow

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Cool cela avance.
    Du coup avec mon tmap je crée donc trois variable global que je passe dans ma function comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select synchro_users((String)globalMap.get("NOM"),(String)globalMap.get("PRENOM"),(Integer)globalMap.get("MATRIC"))
    Mais j'ai le message d'erreur suivant, il ne retrouve pas ma function dans ma base de données.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Message détaillé: The method synchro_users(String, String, Integer) is undefined for the type synchro_etudiants

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Mon erreur se situe ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    query_tDBRow_1 = "select synchro_users((String)globalMap.get("NOM"),(String)globalMap.get("PRENOM"),(Integer)globalMap.get("MATRIC"))";
    Je pense que ma ligne est mal écrite

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    J'avance doucement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Position*: 30ERROR: syntax error at or near "globalMap"

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 36
    Points
    36
    Par défaut
    Oui, tu avances mais vraiment doucement ...

    il faut bien concaténer tes chaines avec des "+".

    En gros les concaténations sont faites comme suit avec JAVA:

    "bla bla bla "+ variable1 + varible2 + "toto toto toto"

  9. #9
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Merci,

    J'avais deux soucis.

    Le tFlowIterate ne rendais pas bien les clés valeurs, donc il vaut mieux les définirs sois même.
    Ensuite la concaténation qui est pas évidente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "select synchro_users('"+(String)globalMap.get("nom_synchro")+"','"+(String)globalMap.get("prenom_synchro")+"','"+(Integer)globalMap.get("matric_synchro")+"')"
    Du coup ça passe, c'est hyper lent, mais ça passe.

Discussions similaires

  1. appeler une fonction connaissant son nom (en string)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 20/07/2004, 00h46
  2. [DLL] problème pour appeler une fonction d'une DLL
    Par bigboomshakala dans le forum MFC
    Réponses: 34
    Dernier message: 19/07/2004, 11h30
  3. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  4. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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