Bonjour a tous,
Je développe une application en Delphi 7 reliée a une base de données MySQL via ADOConnection. J'utilise notamment des ADOTable, ADOQuery et DataSource sur mon Data Module.
Le problème qui se pose c'est que lorsque je choisis d'afficher les données issues d'une table sur mon DBGrid, il n'affiche que certaines colonnes. Quand je ne définie pas de colonnes et que je le laisse afficher toutes les colonnes d'une table, il me renvoie toutes les valeurs. Sauf qu'il y a certaines colonnes dont j'aimerais bien me passer telles que (Num, contact, ...).
Au besoin, je rappelle que je travaille dans l'environnement Windows XP SP2.
A voir également:
"Url de la page, sur votre site, où est affiché le lien vers"
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 2 oct. 2012 à 16:42
Bonjour,
tu as plusieurs possibilités :
- soit tu n'affiches rien, ni ton query, ni dans ton grid
et dans ce cas, tous les champs s'afficheront
- soit tu places certains champs dans ton query ou dans ton grid
et tu ne verras que ceux-ci
tu peux aussi comme l'indique MAURICIO, placer tous les champs
dans le grid et gérer l'affichage de certains d'entre eux au coup par coup
grâce à la propriété visible (false ou true)
que tu peux bien entendu exploiter par programmation.
Merci a MAURICIO et cantador. En spécifiant dans ma requête SQL les colonnes qui m’intéressaient, tout a bien marché. Encore merci.
Mais j'ai un autre soucis alors permettez-moi de vous le soumettre ici en même temps.
voila, j'ai deux tables "voyage" et "voyagetermine". En cliquant sur le bouton valider, j'aimerais qu'un nouvel enregistrement s’opère dans la table "voyagetermine" et qu'au même moment, une mise a jour soit faite au niveau de la table "voyage". Dieu merci, j'arrive a insérer une nouvelle ligne dans la table "voyagetermine". J'aimerais cependant que vous m'aidiez a faire la mise a jour dans la table "voyage".
Voici le code qui permet inserer une nouvelle ligne dans la table "voyagetermine" :
with DM.VoyageTermine do
begin
Open;
Insert;
FieldByName('marque').AsString:=edMarque.Text;
FieldByName('immatriculation').AsString:=edImmatriculation.Text;
FieldByName('nomchauffeur').AsString:=edNomChauffeur.Text;
FieldByName('contactchauffeur').AsString:=edContactChauffeur.Text;
FieldByName('nomclient').AsString:=edNomChargeur.Text;
FieldByName('contactclient').AsString:=edContactChargeur.Text;
FieldByName('marchandise').AsString:=edDesignation.Text;
FieldByName('tonnage').AsString:=edTonnage.Text;
FieldByName('datedepart').AsString:=DateToStr(cbDateDepart.Date);
FieldByName('dateretour').AsString:=DateToStr(cbDateRetour.Date);
FieldByName('montant').AsString:=edSommeAPayer.Text;
FieldByName('avance').AsString:=edAvance.Text;
FieldByName('reste').AsString:=edReste.Text;
FieldByName('etat').AsString:=edTermine.Text;
Post;
DM.VoyageTermine.Refresh;
ShowMessage('Voyage terminé !');
end;
Close;
Merci pour votre aide !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
with DM.VoyageTermine do //enregistrement dans la table "voyagetermine"
begin
Open;
Insert;
FieldByName('marque').AsString:=edMarque.Text;
FieldByName('immatriculation').AsString:=edImmatriculation.Text;
FieldByName('nomchauffeur').AsString:=edNomChauffeur.Text;
FieldByName('contactchauffeur').AsString:=edContactChauffeur.Text;
FieldByName('nomclient').AsString:=edNomChargeur.Text;
FieldByName('contactclient').AsString:=edContactChargeur.Text;
FieldByName('marchandise').AsString:=edDesignation.Text;
FieldByName('tonnage').AsString:=edTonnage.Text;
FieldByName('datedepart').AsString:=DateToStr(cbDateDepart.Date);
FieldByName('dateretour').AsString:=DateToStr(cbDateRetour.Date);
FieldByName('montant').AsString:=edSommeAPayer.Text;
FieldByName('avance').AsString:=edAvance.Text;
FieldByName('reste').AsString:=edReste.Text;
FieldByName('etat').AsString:=edTermine.Text;
Post;
DM.VoyageTermine.Refresh;
ShowMessage('Voyage terminé !');
end;
with DM.Voyage do //mise a jour dans la table "voyage"
begin
Open;
Edit; // J'ai mis Edit ici comme vous me l'avez suggéré
FieldByName('marque').AsString:=edMarque.Text;
FieldByName('immatriculation').AsString:=edImmatriculation.Text;
FieldByName('nomchauffeur').AsString:=edNomChauffeur.Text;
FieldByName('contactchauffeur').AsString:=edContactChauffeur.Text;
FieldByName('nomclient').AsString:=edNomChargeur.Text;
FieldByName('contactclient').AsString:=edContactChargeur.Text;
FieldByName('marchandise').AsString:=edDesignation.Text;
FieldByName('tonnage').AsString:=edTonnage.Text;
FieldByName('datedepart').AsString:=DateToStr(cbDateDepart.Date);
FieldByName('montant').AsString:=edSommeAPayer.Text;
FieldByName('avance').AsString:=edAvance.Text;
FieldByName('reste').AsString:=edReste.Text;
FieldByName('etat').AsString:='Terminé';
Post;
DM.Voyage.Refresh;
end;
Close;
De plus, comment faire pour qu'apres un nouvel enregistrement, mon dbgrid se rafraichisse sans avoir a fermer le programme avant de voir apparaitre le nouvel enregistrement ???
Toutes mes excuses, j'avais dis :
Merci a MAURICIO et cantador. En spécifiant dans ma requête SQL les colonnes qui m'intéressaient, tout a bien marché. Encore merci.
Mais j'ai un autre soucis alors permettez-moi de vous le soumettre ici en même temps.
voila, j'ai deux tables "voyage" et "voyagetermine". En cliquant sur le bouton valider, j'aimerais qu'un nouvel enregistrement s'opère dans la table "voyagetermine" et qu'au même moment, une mise a jour soit faite au niveau de la table "voyage". Dieu merci, j'arrive a insérer une nouvelle ligne dans la table "voyagetermine". J'aimerais cependant que vous m'aidiez a faire la mise a jour dans la table "voyage".
Voici le code qui permet inserer une nouvelle ligne dans la table "voyagetermine" :
with DM.VoyageTermine do
begin
Open;
Insert;
FieldByName('marque').AsString:=edMarque.Text;
FieldByName('immatriculation').AsString:=edImmatriculation.Text;
FieldByName('nomchauffeur').AsString:=edNomChauffeur.Text;
FieldByName('contactchauffeur').AsString:=edContactChauffeur.Text;
FieldByName('nomclient').AsString:=edNomChargeur.Text;
FieldByName('contactclient').AsString:=edContactChargeur.Text;
FieldByName('marchandise').AsString:=edDesignation.Text;
FieldByName('tonnage').AsString:=edTonnage.Text;
FieldByName('datedepart').AsString:=DateToStr(cbDateDepart.Date);
FieldByName('dateretour').AsString:=DateToStr(cbDateRetour.Date);
FieldByName('montant').AsString:=edSommeAPayer.Text;
FieldByName('avance').AsString:=edAvance.Text;
FieldByName('reste').AsString:=edReste.Text;
FieldByName('etat').AsString:=edTermine.Text;
Post;
DM.VoyageTermine.Refresh;
ShowMessage('Voyage terminé !');
end;
Close;
Merci pour votre aide !!
MAURICIO m'avait dit :
Salut,
le principe est le même: il faut utiliser la commande Edit à la place de Insert;
Biensûr, il faut se positionner sur l' enregistrement correct avant.
A+
Et moi, j'ai dis :
Voici le code derrière le bouton en question :
with DM.VoyageTermine do //enregistrement dans la table "voyagetermine"
begin
Open;
Insert;
FieldByName('marque').AsString:=edMarque.Text;
FieldByName('immatriculation').AsString:=edImmatriculation.Text;
FieldByName('nomchauffeur').AsString:=edNomChauffeur.Text;
FieldByName('contactchauffeur').AsString:=edContactChauffeur.Text;
FieldByName('nomclient').AsString:=edNomChargeur.Text;
FieldByName('contactclient').AsString:=edContactChargeur.Text;
FieldByName('marchandise').AsString:=edDesignation.Text;
FieldByName('tonnage').AsString:=edTonnage.Text;
FieldByName('datedepart').AsString:=DateToStr(cbDateDepart.Date);
FieldByName('dateretour').AsString:=DateToStr(cbDateRetour.Date);
FieldByName('montant').AsString:=edSommeAPayer.Text;
FieldByName('avance').AsString:=edAvance.Text;
FieldByName('reste').AsString:=edReste.Text;
FieldByName('etat').AsString:=edTermine.Text;
Post;
DM.VoyageTermine.Refresh;
ShowMessage('Voyage terminé !');
end;
with DM.Voyage do //mise a jour dans la table "voyage"
begin
Open;
Edit; // J'ai mis Edit ici comme vous me l'avez suggéré
FieldByName('marque').AsString:=edMarque.Text;
FieldByName('immatriculation').AsString:=edImmatriculation.Text;
FieldByName('nomchauffeur').AsString:=edNomChauffeur.Text;
FieldByName('contactchauffeur').AsString:=edContactChauffeur.Text;
FieldByName('nomclient').AsString:=edNomChargeur.Text;
FieldByName('contactclient').AsString:=edContactChargeur.Text;
FieldByName('marchandise').AsString:=edDesignation.Text;
FieldByName('tonnage').AsString:=edTonnage.Text;
FieldByName('datedepart').AsString:=DateToStr(cbDateDepart.Date);
FieldByName('montant').AsString:=edSommeAPayer.Text;
FieldByName('avance').AsString:=edAvance.Text;
FieldByName('reste').AsString:=edReste.Text;
FieldByName('etat').AsString:='Terminé';
Post;
DM.Voyage.Refresh;
end;
Close;
Mais, rien ne se passe dans la table "voyage" !!
Merci pour votre aide !!
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 4 oct. 2012 à 17:30
Certes
Il ne faut pas non plus sous-estimer l' importance de faire les recherches par soi-même car ç' est comme ça qu' on apprend des choses qui n' ont rien à voir avec ce que l' on cherchait ...
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 4 oct. 2012 à 20:24
... C'est d'ailleurs souvent en trouvant aujourd'hui des choses qui n'ont rien à voir avec ce que l'on cherchait mais qu'on cherchera demain qu'on se prépare des lendemains peinards.