Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Débuter
Débuter Forum d'entraide pour débuter avec 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 16/08/2004, 23h23   #1
Membre confirmé
 
Inscription : février 2003
Messages : 311
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2003
Messages : 311
Points : 293
Points : 293
Envoyer un message via MSN à zoubidaman
Par défaut Procédures stockées ou requêtes SQL

Salut à tous,

j'utilise actuellement FireBird 1.5.1 avec C++ Builder 6.0 en environnement monoposte, et je me pose la question suivante:

est-ce une bonne idée que de créer pour chaque requête SQL une procédure stockée, et d'appeller la procédure stockée à la place de la requête?

J'y vois l'avantage suivants:

dissociation entre le code C++ et les requêtes, si bien qu'en cas de changement de requête, on n'a pas à recompiler, et si les structures de la table changent, c'est transparent pour le programme qui utilise les procédures...

Par contre je ne suis pas assez au fait des choses pour y voir des inconvénients, si ce n'est peut-être que les PS sont plus longues que les requêtes directement?
zoubidaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2004, 13h26   #2
Membre confirmé
 
Inscription : février 2003
Messages : 311
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2003
Messages : 311
Points : 293
Points : 293
Envoyer un message via MSN à zoubidaman
Sinon j'ai d'autres questions, tant que j'y suis:

Admettons les tables suivantes:

Citation:
Table Sexe
Index | Sexe
-----------------
0 | "Masculin"
1 | "Féminin"

Table Personne
Index | Sexe | Nom
----------------------------
0 | 0 | "Robert"
1 | 1 | "Sylvie"
Si je veux afficher à la fois le sexe et le nom de la personne, que vaut-il mieux comme PS:

une avec un Left Join qui va chercher le nom du sexe correspondant à l'index, ou bien 2 PS: 1 qui retourne le nom du sexe, et qu'on utilise avant le SUSPEND dans 1 PS principale sans Left Join?

Ex:

Code :
1
2
SELECT p.Nom,s.Sexe FROM Personne p LEFT JOIN Sexe s ON s.INDEX = p.INDEX INTO :NOM_PERSONNE,:SEXE_PERSONNE;
SUSPEND;
ou bien

Code :
1
2
3
4
5
SELECT p.Nom,p.Sexe FROM Personne p INTO :NOM_PERSONNE,:INDEX_SEXE;
 
EXECUTE PROCEDURE GET_NOM_SEXE :INDEX_SEXE RETURNING_VALUES :NOM_SEXE;
 
SUSPEND;
La deuxième solution créant une procédure GET_NOM_SEXE pouvant être utilisée autre part si besoin est...
zoubidaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2004, 02h36   #3
Membre confirmé
 
Inscription : février 2003
Messages : 311
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2003
Messages : 311
Points : 293
Points : 293
Envoyer un message via MSN à zoubidaman
Allez, vous répondrez à celle là aussi, tant que vous y êtes

Dans une requête j'ai la séquence suivante:

Code :
... WHERE TABLE.toto IN ('maman','papa','tonton')
Seulement le nombre de séquences dans le IN n'est pas connu, mais est généré selon le nombre de choix dans une liste...

Si je les mets directement dans le code, ça fonctionne. Si je génère ma requête, ça merde...

Et je ne sais pas comment placer les ' pour que ça fonctionne...

Ex:

Code :
...WHERE tm.Type_Match IN (:TYPES_MATCHES)
de quelle forme doit être :TYPES_MATCHES:

'maman','papa','tonton' => Marche pas
maman','papa','tonton => Marche pas
"maman","papa","tonton" => Marche pas

Je pense avoir tout essayé, et rien n'y fait ça ne fonctionne pas
zoubidaman 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 22h11.


 
 
 
 
Partenaires

Hébergement Web