Comment Enregistrer un champ type BLOB avec Query ???
j'ai mis la tête ce matin à chercher jusqu'ç ce que j'ai abouti à cette solution et marche très très bien :
donc :
j'ai déposé un Timage, et un TDBimage
après le chargement de l'image bien sûr dans le TDBimage1 comme suit :
Code:
1 2 3 4
|
If OpenPictureDialogue1.execute THEN
Image1.picture.LoadFromFile(OpenPictureDialogue1.FileName);
TDBImage.picture := image1.picture; |
Dans l'évènement OnClick du Boutton pour enregistrer, je sauvegarde tous les champs excepter le champ Image que je laisse en dernier,
Code:
1 2 3 4 5
|
Query1.Close;
Query1.ParamBYname('Mon_Premier').text := Edit1.text ;
Quey1.ParamByName('Mon_deuxieme').text := Edit2.text;
Query1.ExecSQL; |
après ces instruction le pointeur qui se déplace dans le dbgrid ce déplace quelque part, donc tDBimage ce déplace vers un autre endroit c'est pour ça qu'on a garder une copie dans le Image1 la-haut, dont il faut remettre le pointeur à sa place sur l'enregistrement en cours, je l'ai fait avec :
FindKey([EditCle.text]) //déplace le pointure vers le champ indexé comme clé,puis
Code:
1 2 3 4 5
|
Table1.Edit ;
DBImage1.Picture := Image1.picture ;
Table1.post;
C Tout |
donc l'astuce été :
1- Execution de la requette en premier pour sauvegarder tous les champs, excepter le champ Image
2- Remettre le pointeur sur l'entregistrement en cours d'enregsitrement
3- Effectuer une edition de la table puis sauvegarde du champ Photo