IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Modifier un champ


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Modifier un champ
    Bonjour, j'ai un probleme avec ma requete.
    Je veux modifier le champ ETAT de ma table.
    Et voila j'affiche les resultats de ma table dans dans un dbgrid que voici un exemple.
    IDVEHICULE_SERVI \\ NOM \\ ETAT
    1 \\ a \\ occupee
    15 \\ d \\ libre
    8 \\ o \\ libre
    11 \\ c \\ libre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SQL.Add('UPDATE VEHICULE SET ETAT = :etat_vehi Where IDVEHICULE_SERVI= :IDVEHI');
    ParamByName('etat_vehi').AsString := 'occupee';
    ParamByName('IDVEHI').AsInteger := 15;
    Cette requete permet de changer l'enregistrement (15 d libre) en (15 d occupee).

    Mais moi je ne veux pas fixer le 15 je veux quand ton selectionne par exemple l'enregistrement (11 c libre) que le 11 se place directement a la place de 15.
    je pensais a sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ParamByName('IDVEHI').AsInteger := FieldByName('IDVEHICULE_SERVI').AsInteger ;
    Mais sa ne donne pas avec ce message d'erreur le champ 'IDVEHICULE_SERVI' non trouvee.
    Donc je demande de l'aide.
    Cordialement!

  2. #2
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    A partir de 'Mais moi..' je n'ai rien compris.

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 452
    Points : 24 863
    Points
    24 863
    Par défaut


    Ton problème est symptomatique, combien de développeurs tentent d'utiliser des DataSet, Table et Query alors qu'ils ne comprennent pas comment cela fonctionne !
    Souvent, cela remonte même à la méconnaissance de la POO et à la notion d'instance d'objet !

    Tu peux écrire ceci, faut juste que les objets soient dans un état correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QueryForUpdate.ParamByName('IDVEHI').AsInteger := AutreQueryDejaOuverte.FieldByName('IDVEHICULE_SERVI').AsInteger ;
    Tu peux aussi utiliser une variable ou un contrôle comme un TEdit !

    AutreQueryDejaOuverte serait par exemple relié au DBGrid via un DataSource !
    Evidemment, AutreQueryDejaOuverte et QueryForUpdate sont deux objets indépendant !

    Enfin, tu peux écrire !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DBGrid.DataSource.DataSet.Edit();
    DBGrid.DataSource.DataSet.FieldByName('ETAT').AsString = 'occupee';
    DBGrid.DataSource.DataSet.Post();
    Avec DBGrid.DataSource.DataSet.State tu peux même gérer si le Edit et le Post sont à effectuer ou pas !

    Je pense que tu ne comprends pas très bien les composants DataSet, tes tentatives et ton explication floue (à la limite de l'incompréhension) indique que tu devrais reprendre quelques bases avant d'aller plus loin !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Modifier un champ
    Bonsoir,
    Merci pour votre reponse et je profite dire que je suis un debutant.
    Mon probleme est que je veux recuperer l'identifiant de l'enregistrement selectionner dans la partie rouge .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DMReserv.IBQVehi.ParamByName('IDVEHI').AsInteger :=  DMReserv.IBQVehi1.FieldbyName('IDVEHICULE_SERVI').AsInteger ;
    Lorsque je fais DMReserv.IBQVehi1. je n'ai pas le FieldbyName.

    J'espere que mon explication est un peu claire.
    Cordialement

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 452
    Points : 24 863
    Points
    24 863
    Par défaut
    J'espere que mon explication est un peu claire.
    Euh, Non !
    Et je ne vois pas d'explication, juste une reformulation d'un problème déjà anticipé

    Heureusement, que j'ai écrit "deux objets indépendant" !

    Tu ne peux utiliser DMReserv à la fois pour la mise à jour et la grille !
    Il faut deux instances !

    ton code Devrait être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DMReserv.IBQVehi.ParamByName('IDVEHI').AsInteger := DBGrid.DataSource.DataSet.FieldbyName('IDVEHICULE_SERVI').AsInteger ;
    DBGrid étant le nom de la grille sélectionnée !

    [Mode Troll++]
    Sinon, Arval, une filiale de la BNP a déjà écrit un programme de gestion d'un parc de Véhicule, il y avait juste 20 développeurs dessus pour la version Delphi, autant sur la version SAP, et autant sur la future version C# !
    C'est marrant de voir que tout le monde fait le même genre de programme !
    Après l'Echec de la version SAP devant remplacer la version Delphi, ils ont du tout refaire en C# ! Dur quand même !
    [Mode Troll++]
    Avant de passer à la base de données et à une application métier, essaye donc de maitriser la couche DB de Delphi un petit peu plus ainsi que la notion d'Instance !
    As-tu bien lu toute ma réponse ?
    Tu as quand même posté l'erreur prédite par mon message
    , tu n'as pas même
    utilisé ta matière grise !
    [Mode Troll--]
    [Mode Troll--]
    Allez bon courage !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Modifier deux champs en même temps!!!
    Par Invité dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 08/09/2005, 20h31
  2. [Zope] modifier un champ de formulaire d´un dtml_doc
    Par naiadeKaren dans le forum Zope
    Réponses: 1
    Dernier message: 17/08/2005, 13h31
  3. [EJB2.1 Entity] [CMP] Modifier un champ d'une clé primaire
    Par Medo_free dans le forum Java EE
    Réponses: 4
    Dernier message: 14/03/2005, 18h04
  4. Modifier un champ à partir d'une fenêtre modale
    Par ahoyeau dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/03/2005, 16h53
  5. [struts] : modifier un champ en javascript
    Par richard_34b dans le forum Struts 1
    Réponses: 3
    Dernier message: 02/10/2004, 00h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo