Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/06/2006, 16h36   #1
Invité de passage
 
Inscription : juin 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 5
Points : 3
Points : 3
Par défaut Problème avec le retour des procédures

Salut,

Je suis en train de developper une base de donnée sous C# avec firebird 1.5 Embedded Server.
Pour initialiser mes clés primaires, j'utilise un générateur. Pour ajouter mes tuples, je souhaite utiliser des procédures qui ajoute le tuple et retourne l'identifiant généré.
Le problème, c'est que quand j'appele ma procédure, l'ajout se fait bien, mais ma procédure ne retourne aucune valeur...
Voici mon code :

CREATE PROCEDURE TEST(libell VARCHAR(50))
RETURNS (id_type INT)
AS
BEGIN
id_type = GEN_ID(GEN_TYPE_ETAT,1);
INSERT INTO TYPE_ETAT(id_type_etat,libelle)
VALUES(:id_type, :libell);
END;

Merci de votre assistance...
yagosacquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 17h35   #2
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
il faut faire un select sur la procédure
SELECT id_type FROM TEST('mavaleur')
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 18h49   #3
Invité de passage
 
Inscription : juin 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 5
Points : 3
Points : 3
C'est bien ça le problème... C'est exactement ce que je fais
Voici mon code C# :

Code :
1
2
3
4
5
6
7
8
9
10
 
string requete = "Select * From TEST('valeur');";
FbCommand commande = new FbCommand(requete, this._connexion);
try
{
     FbDataReader reader = commande.ExecuteReader();
     Console.Out.WriteLine(reader.GetName(0));
     Console.WriteLine(reader.GetString(reader.GetOrdinal(reader.GetName(0))));                
}
catch (Exception ec) { Console.WriteLine(ec.Message); }
Quand je fais un listing des données enregistrés dans la variable reader, j'ai bien un attribut "id_type", mais quand j'essais de le lire, j'ai le message d'erreur suivant :
There are no data to read

Est ce que quelqu'un a déjà été confronté à ce problème?
yagosacquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 20h52   #4
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
il manque un SUSPEND à la fin de la procédure pour qu'elle te retourne tes données
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2006, 10h24   #5
Invité de passage
 
Inscription : juin 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 5
Points : 3
Points : 3
Merci beaucoup, c'etait bien ça
J'avais recopié la méthode sur un post du forum mais y'avait pas le SUSPEND à la fin
yagosacquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h54.


 
 
 
 
Partenaires

Hébergement Web