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 13/11/2007, 19h54   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 110
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 110
Points : 12
Points : 12
Par défaut Passage du nom d'une table comme parametre dans une procedure stockee

Salut,

Est-ce qu'on peut passer lu nom d'une table comme paramaitre dans une procedure stockee?

L'Exple suivant genere une erreur :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
SET SQL DIALECT 3;
DROP PROCEDURE test1;
SET TERM ^ ;
CREATE PROCEDURE test1 (xFile varchar(10))
AS
begin
     EXIT;
END^
 
ALTER PROCEDURE test1 (xFile varchar(10))
AS
     declare variable xcode CHAR(10);
     declare variable xcdmvt NUMERIC(15,2);
     declare variable xdtmvt timestamp;
begin
        FOR SELECT code,cdmvt,dtmvt FROM :xFile
            INTO :xcode,:xcdmvt,:xdtmvt
        do
        BEGIN
          suspend;
        END
END
^
SET TERM ; ^
COMMIT;
Est-ce au'il y a une autre metode ?
Socrat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 22h06   #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
non
oui EXECUTE STATEMENT ou EXECUTE BLOCK
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 12h44   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 110
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 110
Points : 12
Points : 12
Merci makowski pour ta répense,
Est-ce que tu peux me montrer un exemple d'utilisation de
EXECUTE STATEMENT ou EXECUTE BLOCK
Socrat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 13h00   #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
RTFM
voir les notes de versions

EXECUTE STATEMENT page 44 release notes Fb1.5.4

EXECUTE BLOCK page 24 release notes fb2.0.3
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 18h11   #5
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 110
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 110
Points : 12
Points : 12
Merci, je vais voir ça.
Socrat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 18h19   #6
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 110
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 110
Points : 12
Points : 12
S'il vous plair Mr makowski, si tu peux me montrer un exemple : dans le tutoriel y a pas une syntaxe qui permet de montrer comment passer le nom d'une table comme paramaitre à une PS.

Ce truc est très intéressant pour moi, il me permet de réduire mon code.

Merci encore.
Socrat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 19h20   #7
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
Pardon ?
il va falloir apprendre à lire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE PROCEDURE DynamicSampleThree (
TextField VARCHAR(100),
TableName VARCHAR(100))
RETURNS (Line VARCHAR(32000))
AS
DECLARE VARIABLE OneLine VARCHAR(100);
BEGIN
Line = '';
FOR EXECUTE STATEMENT
'SELECT ' || TextField || ' FROM ' || TableName
INTO :OneLine
DO
IF (OneLine IS NOT NULL) THEN
Line = Line || OneLine || ' ';
SUSPEND;
END
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 02h08   #8
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 110
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 110
Points : 12
Points : 12
Merci Makowski pour ta répense et pour ton conseil.
Socrat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 09h05   #9
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
remercie plutot les dev et redacteurs de firebird, cet exemple est un copié collé des notes de version !

RTFM
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h10.


 
 
 
 
Partenaires

Hébergement Web