Probleme d'execution de procedure ( confusion entre nom de table et les parametr

Résolu
djbenji81100 Messages postés 66 Date d'inscription vendredi 9 septembre 2011 Statut Membre Dernière intervention 4 juin 2012 - 21 mai 2012 à 16:46
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

4 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
21 mai 2012 à 17:13
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" ;)
3
djbenji81100 Messages postés 66 Date d'inscription vendredi 9 septembre 2011 Statut Membre Dernière intervention 4 juin 2012
21 mai 2012 à 19:27
-.- j'ai vraiment l'air bete la ...

Je te remercie beaucoup bonne soirée
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
21 mai 2012 à 20:56
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 )
0
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
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 .
0