Charger et enregistrer l'image de champ blob en delphi en utilisant firebird
Dans ma base de données Firebird, j'ai un champ Blob contenant une image Bitmap. Je vais charger et afficher dans un TImage situé sur mon Formulaire. Par la suite, je vais avoir à enregistrer dans le même champ de l'image sélectionnée par une zone de dialogue.
Il est généralement une mauvaise idée de stocker des images dans la base de données. Au lieu de cela, vous devez les stocker uniquement le chemin d'accès à votre image sur le système de fichiers.
le client peut tout simplement pas avoir accès à ce système de fichiers. Ainsi, alors que les SGBDR ne sont pas des médias de stockage par la conception - parfois, il est simplifie la conception du système en général. Bien sûr, pour certaines dépenses.
En général, en effectuant des généralisations est une mauvaise idée ;), ça dépend vraiment de l'application et les limites. Pros: les fichiers sont sauvegardés avec DB, applications fat (les clients) qui ont accès à votre base de données n'avez pas besoin de l'accès à un centre de l'emplacement du fichier, le fichier et associés db-enregistrement sont gardés par l'intégrité de contrôle d'accès de la base de données, cons: votre base de données (et de sa sauvegarde) devient vraiment de la graisse, de servir des fichiers à partir d'un serveur web devient plus compliqué etc.
merci pour la compensation que parce que j'ai oublié de parler des avantages et des inconvénients. J'espérais que l'opération serait de faire de la recherche lui-même 🙂
le client peut tout simplement pas avoir accès à ce système de fichiers. Ainsi, alors que les SGBDR ne sont pas des médias de stockage par la conception - parfois, il est simplifie la conception du système en général. Bien sûr, pour certaines dépenses.
En général, en effectuant des généralisations est une mauvaise idée ;), ça dépend vraiment de l'application et les limites. Pros: les fichiers sont sauvegardés avec DB, applications fat (les clients) qui ont accès à votre base de données n'avez pas besoin de l'accès à un centre de l'emplacement du fichier, le fichier et associés db-enregistrement sont gardés par l'intégrité de contrôle d'accès de la base de données, cons: votre base de données (et de sa sauvegarde) devient vraiment de la graisse, de servir des fichiers à partir d'un serveur web devient plus compliqué etc.
merci pour la compensation que parce que j'ai oublié de parler des avantages et des inconvénients. J'espérais que l'opération serait de faire de la recherche lui-même 🙂
OriginalL'auteur stacker | 2012-12-13
Vous devez vous connecter pour publier un commentaire.
exemple d'utilisation
Cela fonctionne, merci!
Hey, explorer classe TBlobStream 🙂 Comme je me souviens bien, vous pouvez éviter les intermédiaires de la création de TMemoryStream et obtenir le stream directement depuis le terrain!
vous devez savoir quel type de TGraphic est stocké dans la Goutte et créer de la Classe. Cette information est connue, si vous souhaitez stocker les images JPG, pourrait être stockée dans un autre champ dans la base de données, ou stockées avec le Graphique dans le blob. Un exemple pour le dernier moyen est montré ici. stackoverflow.com/a/14726934/1699210
Vous devez l'ajouter en tant que propre question, au lieu de le demander dans les commentaires. Je ne vois pas où IStream et jpg sont créés, de même qu'ils sont libres. #53 sonne comme un corrompu ou invalide JPEG, par exemple, une image Bitmap d'un non pris en charge JPG un mal enregistré (BLOB) JPG. Vous pourriez essayer (pour le débogage) pour enregistrer le flux de débogage dans un fichier et l'inspecter et essayer de les charger dans un TImage et/ou un programme graphique. Image1.L'image serait overritten dans chaque boucle(tout en ne rs.EOF).
OriginalL'auteur bummi