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 :

FIREDAC- DBimage et mise à jour base


Sujet :

Bases de données Delphi

  1. #1
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut FIREDAC- DBimage et mise à jour base
    Bonjour,

    Sur 1 formulaire, j'ai 1 DBImage que j'arrive à alimenter.

    Cependant, la modification consistant à charger une photo ne semble pas provoquer le "changement d'état" des données: les boutons de validation/abandon du dbNavigator ne sont pas actifs.
    Du coup la photo n'est pas enregistrée quand je change d'enregistrement.

    Par contre, le chargement d'une photo ET la màj d'un champ (peu importe l'ordre) provoquent ce changement (les boutons deviennent actifs).

    Comment faut-il procéder pour qu'un changement dans le dbImage ai les mêmes conséquences qu'une modification d'un champ lambda?

    Merci par avance.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Bonjour, je passe par un "Post".exemple ici reprenant une image depuis le presse papier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
      ClipboardBitmap: TBitmap;
    begin
      if not Clipboard.HasFormat(CF_BITMAP) then
        exit;
      ClipboardBitmap := TBitmap.Create;
      ClipboardBitmap.Assign(Clipboard);
     
      Tb1.Edit;
      Tb1Photo.Assign(ClipboardBitmap);
      Tb1.Post;
      ClipboardBitmap.Free;

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    on reste sur VCL ?
    Comme la photo est chargée certainement via appel à un dialogue, je dirais que la façon la plus simple est de coder quelque chose de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if OpenDialog1.Execute do
     begin
       // charger image
       DbImage1.Picture.LoadFromFile(OpenDialog1.FileName);
       // mettre en mode edit si besoin
       if Not (FDquery.State in [dsEdit,dsindert]) then FDQuery.Edit;
       // modifier la valeur
       FDquery.(FieldByName('Fichier') as TBlobField).LoadFromFile(OpenDialog.Filename, ftBlob);
     end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    on reste sur VCL ?
    Mais tout à fait

    Par contre, toutes mes excuses puisque ce cas de figure est documenté dans les exemples de la CE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TfrmDivers.LoadPhotoClick(Sender: TObject);
    var
      oFld: TBlobField;
    begin
         with OpenPictureDialog1 do
            if Execute() then
               if FileName<>'' then begin
                  oFld := TBlobField(FDquery1.FieldByName('DIVER_PHOTO'));
                  if Not (FDquery1.State in [dsEdit,dsinsert]) then FDQuery1.Edit;  // si pas déjà, mettre en edit
                  oFld.LoadFromFile(OpenPictureDialog1.FileName);
               end;
     
    end;
    Merci cependant car les "imperfections" du code fourni m'ont mené à cette trouvaille.

    Au passage ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...in [dsEdit,dsinsert]
    semble pouvoir être remplacé par Merci encore!
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/08/2007, 16h11
  2. Mise à jour base des données modifiées dans le DataGridView
    Par dolyne.b dans le forum Windows Forms
    Réponses: 9
    Dernier message: 26/04/2007, 15h58
  3. Mises à jour base Oracle -> base SQL server
    Par fbo33 dans le forum Oracle
    Réponses: 21
    Dernier message: 20/11/2006, 11h05
  4. Mise à jour base access->mysql impossible... :-(
    Par pako69 dans le forum Administration
    Réponses: 4
    Dernier message: 26/09/2005, 14h51
  5. [SQL server][TDbRichEdit] Mise à jours base de donnée
    Par Revan012 dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/06/2004, 12h12

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