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 :

Comment lire un champ image dans acces


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Comment lire un champ image dans acces
    Bonjour;

    J'ai créé une table access qui contient un champ image tel que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      req:= 'CREATE TABLE NOMINAL (' +
      ' NOMINAL_NO INTEGER, ' +
    // divers champs
      ' NOMINAL_IMAGE IMAGE NOT NULL, ' +
    // d'autres champs
      ')';
      ADOCommand1.CommandText := req;
      ADOCommand1.Execute;
    Puis j'ai créé une procedure stockée telle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
      req:= 'CREATE PROC procNominalAddItem( NominalNo INTEGER, '+
    // divers champs
      NominalImage IMAGE, '+ 
    // d'autres champs
    ' )'+
      'AS INSERT INTO NOMINAL (NOMINAL_NO, '+
    // divers champs
    'NOMINAL_IMAGE, '+
    // d'autres champs
    ')'+
    'Values (NominalNo,'+
    // divers champs
    'NominalImage,'+
    // d'autres champs
    ');'; 
      ADOCommand1.CommandText := req;
      ADOCommand1.Execute;
    J'ai utilisé la procédure stockée telle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
      ADOStoredProc2.ConnectionString:= Format(_ConnString,[_UserName,_PassWord,MDBFile]);
      ADOStoredProc2.ProcedureName:= 'procNominalAddItem';
      ADOStoredProc2.Parameters.Clear;
      for k:=0 to 20 do
      begin
        ADOStoredProc2.Parameters.AddParameter;
        ADOStoredProc2.Parameters[k].DataType:= ftString;
        ADOStoredProc2.Parameters[k].Direction:= pdInput;
        case k of
          0: begin
            ADOStoredProc2.Parameters[k].Name:= 'NominalNo';
            ADOStoredProc2.Parameters[k].Value:= NominalNo;
          end;
    // divers champs
          4: begin
            ADOStoredProc2.Parameters[k].Name:= 'NominalImage';
            ADOStoredProc2.Parameters[k].Assign(Rec.Image);
          end;
    // d'autres champs
        end;
      ADOStoredProc2.Prepared:= true;
      ADOStoredProc2.ExecProc;
    Cela a très bien fonctionné puisqu'en examinant ma table sous Acces le champ NOMINAL_IMAGE contient une donnée binaire signalée "n'est pas vide" au bouton droit.

    Mon problème :
    Comment avec les composants ADO récupérer l'image dans un bitmap ?

    Un exemple de code serait bienvenu

    Merci à tous les forumers

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Bien lire la que je t'avais donné la dernière fois ...

    à la fin y a ce qu'il faut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var
      sPath : String
    begin
      With AdoTable do
      begin
        // Récupération du nom du fichier
        sPath := ExtractFilePath(Application.ExeName) + FieldByName('Nom').AsString;
        // sauvegarde du fichier
        TBlobField(FieldByName('Fichier')).SaveToFile(sPath);
      end;
    end;
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Merci Rayek
    avec ceci c'est gagné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      qry.Connection := ADOConnection1;
      qry.Close;
      qry.SQL.Clear;
      qry.SQL.text:='SELECT * FROM NOMINAL WHERE NOMINAL_NAME= "fortest"';
      qry.Prepared := true;
      qry.Open;
      ImageNominal.Picture.Bitmap.Assign(TBlobField(qry.FieldByName('NOMINAL_IMAGE')));
    Merci Rayek

    Bonne journée

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/05/2011, 17h05
  2. Réponses: 5
    Dernier message: 16/03/2005, 22h17
  3. Comment créer un champs " BOOLEAN " dans ACCESS ?
    Par Didier100 dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/10/2004, 11h15
  4. Comment lire un fichier image
    Par Charlemagne dans le forum DirectX
    Réponses: 9
    Dernier message: 12/03/2004, 00h22
  5. Comment voir les champs créés dans les tables?
    Par Missvan dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/02/2004, 10h27

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