DBImage et ACCESS , sauvegarde image

Résolu
yvessimon
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017
- 30 mai 2006 à 12:13
vrachid
Messages postés
109
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 octobre 2011
- 31 déc. 2009 à 16:16
Bonjour
Le chargement d'une image bmp ou jpg dans DBImage fonctionne.

Par contre la sauvegarde dans la base de donnée ACCESS après postage est vide et sans erreur !

Que faut-il faire pour avoir le DBImage mémorisé dans la base  ?, je suis en mode édition .

Par une autre méthode la mémorisation se fait bien .

yvessimon

13 réponses

cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
4 juin 2006 à 10:10
Aïe, j'ai bien peur que tu fasses fausse route.

De mémoire, voici un code qui devrait fonctionner (je ne l'ai pas testé avec ADO) :

procedure TForm1.Button1Click(Sender: TObject);
var
  //Flux standard
  Stream: TStream;
begin
  //Mettre l'ensemble de données en mode édition
  AdoQuery1.Edit;
  try
    //Création du flux en écriture sur le champ 'monChamp'
    Stream :=  Adoquery1.CreateBlobStream(AdoQuery1MonChamp, bmWrite);
    try
      //Enregistrer l'image contenue dans Image1 dans le flux
      Image1.Picture.Graphic.SaveToStream(Stream);
    finally
      Stream.Free;
     end ;
    //Valider l'enregistrement
    Adoquery1.Post;
  except
    //Abandon du mode édition
    Adoquery1.Cancel;
    ShowMessage('Erreur à l''enregistrement de l''image');
  end;
end;

Comme l'objet Bitmap possède une méthode SaveToStream, tu ne devrais pas avoir de mal à adapter ce code.

May Delphi be with you !
<hr color ="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
3
yvessimon
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017

30 mai 2006 à 15:25
Le presse papier provenant du Paint est transferé dans dbimage par cette procedure

   if (Clipboard.HasFormat(CF_BITMAP)) then
   begin
    B := TBitmap.Create;
    B.Assign( Clipboard) ;
   
   DBImage1.Picture.Assign(B);


  B.free;


 end

// ++++   la question devient
Comment redimensionner l'image contenue dans le DBImages  ????

yvessimon
0
cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
5 juin 2006 à 10:26
Yvessimon : ma réponse a-t-elle solutionné ton problème ?


Merci de donner signe de vie

May Delphi be with you !


<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
yvessimon
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017

5 juin 2006 à 11:55
Avec   ADOTable à la place de  
AdoQuery1.Edit il y a une erreur de transfert.


Je te tients informé de l'évolution


Salutations
yvessimon
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yvessimon
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017

12 juin 2006 à 09:08
Bonjour,


Toutes mes excuses pour ce temps de réponse


Avec le flux stream cela fonctionne très bien et même dans les 2 sens.


Merci

Salutations

yvessimon
0
cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
12 juin 2006 à 23:17
Alors, c'est parfait. Je pense que tu n'as pas dû avoir trop de problèmes pour adapter le code quand il s'agit de lire un champ blob.

Il ne te reste plus qu'à valider la réponse

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
tchiebleyII
Messages postés
2
Date d'inscription
mercredi 26 avril 2006
Statut
Membre
Dernière intervention
23 février 2007

22 févr. 2007 à 16:36
achille!



qui peuy maiger? moi je suis encore à létape premier du problème!
bon voilà! je n'arrive pas à gerer le problème de type de access et de dbimage de delphi (moi j'utilise delphi 7)!

en claire ma question est comment faire pour gerer ce problème de type?
0
vrachid
Messages postés
109
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 octobre 2011

4 mars 2008 à 17:49
salut a tous voila j'ai un probleme avec ce code car j'utilse un tADOTable je reçoi ce message "[Erreur] ophtalmo.pas(1026): Types incompatibles : 'TField' et 'TADOTable'" et je ne c pas par quoi remplacer "TADOQuery1MonChamp" de l'exemple ci_dessus dans mon cas avec la table.
au faite j'ai une base access avec quatre table dedans comment faire pour utiliser un Adoquery pour les requetes ??? sinon y a t_il un truc pour s'en passer de ce tAdoquery, moi j'utilse des TAdoTable bon ça fonctionne pour la manip des données mais le filtrage et la recherche rien
merci de votre aide.
0
vrachid
Messages postés
109
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 octobre 2011

4 mars 2008 à 18:00
je crois que j'ai trouve la solus pour le remplacement mais dés que j'essayes de charger une image j'ai message ERREUR DE SYNTAXE DANS LA CLAUSE FROM si qqn a une idée d'ou ça peut venir ?
0
cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
4 mars 2008 à 18:36
@vrachid a dit : " j'ai message ERREUR DE SYNTAXE DANS LA CLAUSE FROM si qqn a une idée d'ou ça peut venir ?"

On doit aussi deviner le code de la requête ???

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
vrachid
Messages postés
109
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 octobre 2011

30 déc. 2009 à 10:14
bonjour à tous,
voila j'ai réessayé d'adapter cette procédure pour mon besoin après l'avoir abandonné pour longtemps, et j'ai compris comment faire, sauf que je reçois un message (identificateur non déclaré 'bmwrite') si vous pouvez m'aider sur ça
merci bien.
0
cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
31 déc. 2009 à 12:37
@vrachid :
Quand comprendras-tu qu'il faut que tu donnes davantage d'informations pour qu'on puisse t'aider efficacement ?

L'identificateur bmWrite est déclaré dans l'unité DB :

TBlobStreamMode = (bmRead, bmWrite, bmReadWrite);


8000 Lévriers 'galgos' par an sont torturés et massacrés en Espagne
May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
vrachid
Messages postés
109
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 octobre 2011

31 déc. 2009 à 16:16
Désolé pour le désagrément mr Delphiprog,
je ne suis qu'un débutant en delphi qui demande de l'aide
je pense que le plus important est que tu as compris mon problème puisque tu m'as donné la solution et merci pour ça en tout cas.
0