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 32
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 32
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 32
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 32
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 32
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
Rejoignez-nous