Ali_usto
Messages postés131Date d'inscriptionlundi 20 novembre 2006StatutMembreDernière intervention11 octobre 2010
-
3 juin 2007 à 19:25
mouloud261 -
13 déc. 2009 à 11:53
Salut tout le monde
comment enregistrer une image (Jpeg,bmp......) dans une base de données, c'est a dire avec un enregistrement et puis l'afficher dans un dbimage
merci
Ali_usto
Messages postés131Date d'inscriptionlundi 20 novembre 2006StatutMembreDernière intervention11 octobre 2010 25 juin 2007 à 22:18
Voila un bout de code que j'ai trouvé dans ce site et qui marche tres bien
pour enregistrer l'image dans la table voici le code
//ceici est la fonction de remplissage amélioté par F0xi
function WriteBlobFile(Table : Ttable; const Field, FileName : string) : boolean;
var blob,fs : Tstream;
begin
table.edit;
result := false;
if (not FileExists(FileName)) or (not Assigned(Table)) then exit;
blob := nil;
fs := nil;
try
blob := table.CreateBlobStream(table.FieldByName(Field),bmWrite);
blob.Seek(0,soFromBeginning);
try
fs := Tfilestream.Create(FileName, fmOpenRead or fmShareDenyWrite);
blob.CopyFrom(fs, fs.size);
result := true;
finally
fs.Free;
end;
finally
blob.Free;
table.Refresh;
end;
end;
/// ceci est la procedure à appeler lorsqu'on appui sur le bouton choix d'image!
procedure TAj_ele.OKClick(Sender: TObject);
Var fn:string;
begin
if Opd1.execute then
begin
fn:=opd1.FileName;
if not WriteBlobFile(eleve, 'ph', fn) then
MessageDlg('Erreur d''ecriture du fichier dans la table...',mtWarning,[mbOk],0);
end;
image1.Picture.LoadFromFile(opd1.FileName);
end;
Ali_usto
Messages postés131Date d'inscriptionlundi 20 novembre 2006StatutMembreDernière intervention11 octobre 2010 5 juin 2007 à 00:32
J'ai utilisé le type graphique il m'a ecrit mais j'ai pas su comment l'utiliser par la suite est ce que vous pouvez m'apporter encore un peut plus d'explication
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 6 juin 2007 à 19:28
LoadFromFile(Nom du fichier bmp);
c'est bien à condition d'avoir quelques images à montrer, mais si tu en as plusieurs centaines, là çà devient problématique de stoker tous les fichiers et autre argument, les BDD sont de plus en plus performantes et stockent de plus en plus de quantités impressionnates de données.
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 6 juin 2007 à 20:05
-> Cantador
J'ai pas tout compris...
L'exemple montre comment enregistrer un bitmap dans une base de donnée paradox (je pense que ça marche également pour fb), ce qui répond à la question posée, non ? ()
Qu'entends-tu par des centaines de fichiers ?
Ali_usto
Messages postés131Date d'inscriptionlundi 20 novembre 2006StatutMembreDernière intervention11 octobre 2010 6 juin 2007 à 22:49
///////////////////////
TBLnum.AsInteger := 1;
TBLimg.Assign(MyBMP);
//////////////////////////
j'ai pas bien compris cette partie des instruction que representent tblnum et tblimg
Ali_usto
Messages postés131Date d'inscriptionlundi 20 novembre 2006StatutMembreDernière intervention11 octobre 2010 6 juin 2007 à 22:56
Oui cantador a raison
LoadFromFile(Nom du fichier bmp);
tu ne vas pa a chaque fois changer le nom du bmp si t'as beaucup d'images sa devient plus interessant la solution que tu proposes
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 7 juin 2007 à 10:59
a Ali_usto
Sur :
TBLnum.AsInteger := 1;
TBLimg.Assign(MyBMP);
A priori, TBL c'est une table...
A priori, num c'est un champ integer
A priori, img c'est un champ graphique
A propos de mon code :
Ça explique comment faire entrer un bmp dans une table contenant un champ de type graphique. Pour l'exemple, j'ai choisi de créer un bmp avec un loadfromfile...
mais c'est un détail, ce qui est important, c'est la façon
d'enregistrer ce bmp dans la table ! (ce qui, je pense, répond à ta
question initiale). Après, si tu récupères une image autrement, c'est
une autre histoire...