DBImage et ACCESS , sauvegarde image [Résolu]

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

Votre réponse

13 réponses

Meilleure réponse
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
3
Merci
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.

Merci cs_Delphiprog 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Delphiprog
Messages postés
647
Date d'inscription
mardi 22 avril 2003
Dernière intervention
9 janvier 2017
0
Merci
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
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
0
Merci
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
Messages postés
647
Date d'inscription
mardi 22 avril 2003
Dernière intervention
9 janvier 2017
0
Merci
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
Messages postés
647
Date d'inscription
mardi 22 avril 2003
Dernière intervention
9 janvier 2017
0
Merci
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
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
0
Merci
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
Messages postés
2
Date d'inscription
mercredi 26 avril 2006
Dernière intervention
23 février 2007
0
Merci
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
Messages postés
110
Date d'inscription
lundi 6 mars 2006
Dernière intervention
5 octobre 2011
0
Merci
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
Messages postés
110
Date d'inscription
lundi 6 mars 2006
Dernière intervention
5 octobre 2011
0
Merci
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
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
0
Merci
@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
Messages postés
110
Date d'inscription
lundi 6 mars 2006
Dernière intervention
5 octobre 2011
0
Merci
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
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
0
Merci
@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
Messages postés
110
Date d'inscription
lundi 6 mars 2006
Dernière intervention
5 octobre 2011
0
Merci
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.