Procedure pour integrer un blob dans une base de données paradox

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 214 fois - Téléchargée 29 fois

Contenu du snippet

Ceci est ma premiére source sur delphifr
c'est une procedure qui permet d'integrer un fichier quelconque(sous sa forme binaire) (BLOB)dans une base de données paradox
j'utulise un TOpenDialogue pour récuperer le fichier en question
( pour cet exemple j'utlise un TOpenPictureDialogue lais rien n'empeche d'utiliser un TOpenDialogue classique avec le filtre souhaités)

Source / Exemple :


procedure remplir_blob( var table:Ttable;opd:TOpenPictureDialog;champ:string);
//champ designe le champs de la table alloué au BLOB
var blob,fs:Tstream;
begin
blob:=table.CreateBlobStream(table.FieldByName(champ),bmWrite);
 try
   blob.Seek(0,soFromBeginning);
   fs:= Tfilestream.Create(opd.FileName,fmOpenRead or fmShareDenyWrite);
     try
      blob.CopyFrom(fs, fs.size);
     finally
     fs.Free;
     end;
   finally
 blob.Free;
end;
end;

Conclusion :


vos commentaires sont les bien venues

A voir également

Ajouter un commentaire Commentaires
Messages postés
28
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
31 janvier 2013

bonjour
y a pas possibilité de faire simple svp
moi ayant une table accesss 2007, je n'arrive pas à adapter ce code comment faire svp simplement.
merci
Messages postés
33
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
27 avril 2007

désolé pour ce retard mais j'ai pas eu le temps ces derniers jours

Alors pour tes question une seul réponse:
la bibliothèque JVCL gratuite elle comprend deux composant un pour afficher les image sous format Jpeg ( et autres fromat d'ailleurs) et un composant DBJVIMAge qui agit exactement comme DBimage et il accepte les Jpeg tu trouvera la derniere version stable de cette bibliothèque (600 composants visuels et non-visuels) à l'adresse suivante:
http://sourceforge.net/project/showfiles.php?group_id=45786
Messages postés
12
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
1 janvier 2007

Merci pour on aide!
alors pour l'erreur que j'avais, il falait juste faire l'execution de l'executable en fermant delphi
autre chose pour le blob, j'ai su qu'il falait faire le type Binary ce qui m'avait réglé la moitié du probleme
maintenant je cherche le composants qui ouvre des images Jpg!
j'ai pas encore trouvé!

autres questions: si après ça marche et que j'enregstre des images au format Jpg, est-ce que un DBimage poura me les afficher comme les bmp déja enregistré? ou dois-je utiliser uen autre fonction de lecture pour les afficher?
merci
Messages postés
33
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
27 avril 2007

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;
Messages postés
33
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
27 avril 2007

ah voila l'erreur!
utilise la procedure tel qu'elle est mais il faut definir le champ 'Image ' en tant que BLOB (binary) et non un Graphic
car pour Delphi si vou declarer le champs en tant que Graphic il va verifier que c'est une image BMP ou Ico
part contre en le déclarant sous format de (BLOB) vous pouvez mettre ce que vous voulez dedans( avi,mpeg jpeg swf ...)
l'astuce ça sera dans la lecture il vous faudra un conteneur qui permet la lecture des gif et des Jpeg vous trouverer un composant Image qui permet ceci dans la bibléothéque de JVCL
PS:le nom de champ doit être passé à la procedure en String.
j'espére que ça fonctio,nera pour vous en attendant bonne année à tous les participant! a+
Afficher les 36 commentaires

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.