DBImage et ACCESS , sauvegarde image [Résolu]

yvessimon 647 Messages postés mardi 22 avril 2003Date d'inscription 9 janvier 2017 Dernière intervention - 30 mai 2006 à 12:13 - Dernière réponse : vrachid 110 Messages postés lundi 6 mars 2006Date d'inscription 5 octobre 2011 Dernière intervention
- 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
Afficher la suite 

13 réponses

Répondre au sujet
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 4 juin 2006 à 10:10
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Delphiprog
yvessimon 647 Messages postés mardi 22 avril 2003Date d'inscription 9 janvier 2017 Dernière intervention - 30 mai 2006 à 15:25
0
Utile
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
Commenter la réponse de yvessimon
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 5 juin 2006 à 10:26
0
Utile
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.
Commenter la réponse de cs_Delphiprog
yvessimon 647 Messages postés mardi 22 avril 2003Date d'inscription 9 janvier 2017 Dernière intervention - 5 juin 2006 à 11:55
0
Utile
Avec   ADOTable à la place de  
AdoQuery1.Edit il y a une erreur de transfert.


Je te tients informé de l'évolution


Salutations
yvessimon
Commenter la réponse de yvessimon
yvessimon 647 Messages postés mardi 22 avril 2003Date d'inscription 9 janvier 2017 Dernière intervention - 12 juin 2006 à 09:08
0
Utile
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
Commenter la réponse de yvessimon
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 12 juin 2006 à 23:17
0
Utile
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.
Commenter la réponse de cs_Delphiprog
tchiebleyII 2 Messages postés mercredi 26 avril 2006Date d'inscription 23 février 2007 Dernière intervention - 22 févr. 2007 à 16:36
0
Utile
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?
Commenter la réponse de tchiebleyII
vrachid 110 Messages postés lundi 6 mars 2006Date d'inscription 5 octobre 2011 Dernière intervention - 4 mars 2008 à 17:49
0
Utile
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.
Commenter la réponse de vrachid
vrachid 110 Messages postés lundi 6 mars 2006Date d'inscription 5 octobre 2011 Dernière intervention - 4 mars 2008 à 18:00
0
Utile
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 ?
Commenter la réponse de vrachid
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 4 mars 2008 à 18:36
0
Utile
@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.
Commenter la réponse de cs_Delphiprog
vrachid 110 Messages postés lundi 6 mars 2006Date d'inscription 5 octobre 2011 Dernière intervention - 30 déc. 2009 à 10:14
0
Utile
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.
Commenter la réponse de vrachid
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 31 déc. 2009 à 12:37
0
Utile
@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.
Commenter la réponse de cs_Delphiprog
vrachid 110 Messages postés lundi 6 mars 2006Date d'inscription 5 octobre 2011 Dernière intervention - 31 déc. 2009 à 16:16
0
Utile
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.
Commenter la réponse de vrachid

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.