Probleme d'execution de procedure ( confusion entre nom de table et les parametr [Résolu]

Messages postés
66
Date d'inscription
vendredi 9 septembre 2011
Statut
Membre
Dernière intervention
4 juin 2012
- - Dernière réponse : djbenji81100
Messages postés
66
Date d'inscription
vendredi 9 septembre 2011
Statut
Membre
Dernière intervention
4 juin 2012
- 28 mai 2012 à 12:25
Bonjour je viens de créer une procedure pour un programme enn vb.net mais je me herte a un certain probleme .

voila la procedure en question :

CREATE OR REPLACE FUNCTION insertion_info_pers_deja_existante(in Nom_client text, in Prenom_client text, in Code_postal_client text, in Nb_pers integer, in Combo_animal text) RETURNS integer AS $$

declare
succes integer;
begin

Update Client
set animal Combo_animal, nb_pers Nb_pers
WHERE nom = Nom_client
AND prenom = Prenom_client
and code_postal = code_postal_client;

return succes = 1;
end;

$$ LANGUAGE plpgsql


Le probleme est le suivant , lorsque je fait un test dessus de ce type :
select insertion_info_pers_deja_existante(Bertrand, Michel, 81100, 3, 'non');


j'ai l'erreur suivante
la colonne « bertrand » n'existe pas


je ne comprend pas pourquoi il ne veut pas m'executer ma requete , j'ai toujours fait comme ca au lycée et je n'est eu aucun soucis .

j'ai verifier que le langage plpgsql été bien activé et c'est le cas .

Quelqu'un a t'il une solutoin ?

Merci d'avance
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
3
Merci
Salut,

les paramètres que tu passes à ta fonction sont des constantes, et les constantes de type text doivent être entourées par des quotes :
SELECT insertion_info_pers_deja_existante("Bertrand", "Michel", "81100", 3, "non");


Chose que tu avais d'ailleurs bien faite pour la constante "non" ;)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 214 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_jopop
Messages postés
66
Date d'inscription
vendredi 9 septembre 2011
Statut
Membre
Dernière intervention
4 juin 2012
0
Merci
-.- j'ai vraiment l'air bete la ...

Je te remercie beaucoup bonne soirée
Commenter la réponse de djbenji81100
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Non, ne t'inquiète pas t'as pas l'air bête.

Perso j'ai déjà bloqué sur des trucs qui m'ont parus évidents en les trouvant
(je me rappelle notamment de 16h de debug pour trouver deux points-virgules successifs dans un code en C )
Commenter la réponse de cs_jopop
Messages postés
66
Date d'inscription
vendredi 9 septembre 2011
Statut
Membre
Dernière intervention
4 juin 2012
0
Merci
Oui c'esrt le genre de chose qui rends fou ! ^^

Par contre j'ai une autre petite question. Forcement la procedure fonctionne parfaitement lorsque je l'execute sur postgres. Mais elle ne fonctionne pas sur mon prog lorsque je l'appel. Voila le code

  Private Sub Reserver_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Reserver.Click
        Dim req_sql As String
        Dim rs As New ADODB.Recordset

        If C_oui.Checked = True Then

            req_sql = ("select insertion_info_pers_deja_existante('" & Nom_client.Text & "', '" & Prenom_client.Text & "', '" & Code_postal_client.Text & "', " & Nb_pers.Value & ", '" & Combo_animal.Text & "')")

            Try

                cn.Open(chaineconnexion)

                rs.Open(req_sql, cn, CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)

                rs.Close()

                cn.Close()

                MsgBox("mise a jour ok")

            Catch ex As Exception

                MsgBox("une Exception est déclenchée" & vbCrLf & ex.Message)
                'gestion_erreur(cn)

            Finally

                ' cn = Nothing

            End Try

        End If

    End Sub


j'ai aucune erreur qui apparait, mais je n'est aucune modification qui ce fait .
Commenter la réponse de djbenji81100