Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Bases de données
Bases de données Vos questions concernant les bases de données (BDE, Access, SqlServer...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/11/2012, 14h40   #1
kroma23
Membre du Club
 
Inscription : juillet 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 354
Points : 65
Points : 65
Par défaut Affichage personnalisé dans une requête SQL

salut a tout
interbase,delphi7,quickrep
agent(num,nom,prenom,poste_sup)
poste_sup est le poste supérieure de l'agent
est ce qu'il est possible avec une requette sql afficher la liste des agent s'achant que leur poste_sup contient un mot donnee
ont a chef service comptabilité
chef service personnel
etc..
ont aussi
chef de brigade
etc..
alors si je r'entre chef service il m'affiche tout les chef service
merci d'avance
kroma23 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 26/11/2012, 15h19   #2
seremei
Candidat au titre de Membre du Club
 
Homme
Développeur delphi junior
Inscription : février 2012
Messages : 39
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Développeur delphi junior
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2012
Messages : 39
Points : 11
Points : 11
Si je comprend bien tu veux afficher une liste des agents (num, nom, prénom) pour un poste_sup que tu connais ?

le renseigne tu dans un champs ?
seremei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2012, 15h25   #3
seabs
Membre chevronné
 
Inscription : janvier 2009
Messages : 397
Détails du profil
Informations personnelles :
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2009
Messages : 397
Points : 640
Points : 640
Bonjour,

Il serait plus facile de répondre si tu nous donnes la requête que tu as faite.

De plus, je n'ai pas compris clairement ce que devait contenir la colonne Post_Sup.

Je pense d'ailleurs que ta table n'est pas normalisée et qu'il faudrait certainement exporter la colonne Post_Sup dans une autre table.

Nous aurions
Code :
1
2
3
Cadre(idCadre, Post_Sup)
Agent(idAgent, #IdCadre, nom, prenom)
Clé primaire = souligné, clé étrangère = # + italique

Tu éviteras des redondances et répétitions avec des orthographes différentes.

Pour lister des agents, il conviendra d'établir une requête avec jointure.

Tout ceci sous réserve d'avoir compris ta demande

A+
seabs est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/11/2012, 18h26   #4
kroma23
Membre du Club
 
Inscription : juillet 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 354
Points : 65
Points : 65
merci pour vos reponce peut etre que jais mal expliquer mon probleme
ce que je veux ces afficher toute les agent qui ont dans leur champ poste_sup le mot chef service biensur avec une requette sql , ces un truc comme la fonction pos.
merci d'avance
kroma23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 21h15   #5
BuzzLeclaire
Membre Expert
 
Avatar de BuzzLeclaire
 
Homme
Dev/For/Vte/Ass
Inscription : août 2008
Messages : 1 499
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Dev/For/Vte/Ass

Informations forums :
Inscription : août 2008
Messages : 1 499
Points : 1 059
Points : 1 059
Citation:
Envoyé par kroma23 Voir le message
merci pour vos reponce peut etre que jais mal expliquer mon probleme
ce que je veux ces afficher toute les agent qui ont dans leur champ poste_sup le mot chef service biensur avec une requette sql , ces un truc comme la fonction pos.
merci d'avance
C'est assez simple de faire cette requête, mais tu n'as pas compris ce que @seabs à écrit.

Si l'utilisateur pour ton champ Post_sup il a écrit :

chef service
chef services
chefs services
chef de service
chef de services
chefs de service
chefs de services

Tu va faire comment pour trouver tous les chefs de service ?

Le mieux est d'avoir 2 tables comme te la suggéré @seabs.

Montre nous ta requête déjà et ensuite on t'aidera à la faire fonctionner.
BuzzLeclaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 18h14   #6
kroma23
Membre du Club
 
Inscription : juillet 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 354
Points : 65
Points : 65
merci pour ta reponce BuzzLeclaire
jais une seul table agent(num_agent,nom,prenom,poste_sup)
le champs poste_sup peut contenir
chef service comptabilité
chef service personel
et le champs poste_sup peut contenir aussi
chef de brigade1
chef de brigade2
et ainsi de suite
ce que je veux ces afficher toute les agents qui leur poste_sup contenir le mot chef service alors il m'affiche les chef service compatbilte et les chef service personnel mais il m'affiche pas les chef de brigarde1 et ainsi de suite.
jais pas une requette car je ne ces pas comment faire ca mais jais un exemple avec une boucle.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
with ibquery1 do
begin
close;
sql.clear;
sql.add('select * from agent');
open;
end;
 
ibquery1.first;
while not ibquery1.eof do
begin
if pos(ibquery1.fieldvalues['poste_sup'],chef service)=true then
enregister cette enregistrement dans une autre table 
 
ibquery1.next;
end;
 
afficher cette table



merci d'avance.
kroma23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2012, 18h42   #7
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 209
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 4 209
Points : 7 267
Points : 7 267
Code :
SELECT * FROM  AGENT WHERE POSTE_SUP STARTING WITH 'chef service'
1 - votre analyse de base de données est à revoir selon les conseils de seabs
2- il faudrait quand même un peu se renseigner sur le SQL
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 11h12   #8
kroma23
Membre du Club
 
Inscription : juillet 2006
Messages : 354
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 354
Points : 65
Points : 65
merci bien sergio ces ca ce que je veux elle marche tres bien , svp jais une autre question:
si je veux utiliser un parametre dans cette requette jais essai comme ca mais ca ne marche pas
Code :
1
2
3
4
5
6
7
8
9
 
with ibquery1 do
begin
close;
sql.clear;
sql.add('SELECT * FROM  agent WHERE POSTE_SUP STARTING WITH '':poste''');
parambyname('poste').asstring:=edit1.text;
open;
end;
merci d'avance .
kroma23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 11h24   #9
Cl@udius
Modérateur
 
Avatar de Cl@udius
 
Homme Claude Renouleaud
Développeur informatique
Inscription : février 2006
Messages : 4 860
Détails du profil
Informations personnelles :
Nom : Homme Claude Renouleaud
Âge : 50
Localisation : France, Hautes Pyrénées (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 4 860
Points : 9 967
Points : 9 967
Salut
Code :
sql.add('SELECT * FROM  agent WHERE POSTE_SUP STARTING WITH :poste');
Les apostrophes me semblent superflus.

@+ Claudius
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.
Cl@udius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 09h34   #10
seremei
Candidat au titre de Membre du Club
 
Homme
Développeur delphi junior
Inscription : février 2012
Messages : 39
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Développeur delphi junior
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2012
Messages : 39
Points : 11
Points : 11
Citation:
posté par Cl@udius
Salut

Code :
sql.add('SELECT * FROM  agent WHERE POSTE_SUP STARTING WITH :poste');
Les apostrophes me semblent superflus.
Effectivement Cl@udius tu a raison. Si le paramètre est configuré en string les apostrophes sont superflus.

Dans la propriété params de delphi tu paramètre ton :poste comme suit :
DataType : ftString
Name tu touche pas c'est le nom après le ' : '
ParamType : ptInput

Comme ça cela devrai fonctionner

Un pitit exemple :
Code :
1
2
3
4
5
SELECT VENTE.COM_CODE AS cle, COMMERCIAUX.COM_NOM, COMMERCIAUX.COM_PRENOM, VEN_DATE, CLI_CODE, VEN_PRIX
FROM COMMERCIAUX LEFT JOIN VENTE ON COMMERCIAUX.COM_CODE = VENTE.COM_CODE
WHERE (COMMERCIAUX.COM_CODE BETWEEN :comdebut AND :comfin)
AND (VEN_DATE BETWEEN :min AND :max)
GROUP BY VENTE.COM_CODE, COM_NOM, COM_PRENOM, VEN_DATE, CLI_CODE, VEN_PRIX
mes :comdebut et :comfin sont déclaré en ftString et comme tu peux le voir pas besoin des apostrophes
mes :min et :max sont déclaré en ftDateTime
tous les 4 en ptInput
EDIT : pour assigner le param tu fait :
Code :
FormEditionComm.Query1.ParamByName('min').AsString:= FormEditionComm.EditBtnChoixEnreg1.Text;
j'espère que ton problème est résolu
seremei est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h09.


 
 
 
 
Partenaires

Hébergement Web