Delphi chargement de l'image l'enregistrer en tant que blob dans une base de données sql
J'essaie de charger un contrôle de l'Image à partir d'une image blob précédemment sauvegardée dans une base de données sql.J'ai testd de nombreuses façons et je ne peux pas le faire fonctionner. L'image blob est enregistré en tant que:
qry.SQL.Text := 'update tbl set pic = :blobVal where id = :idVal';
qry.Parameters.ParamByName('blobVal').LoadFromFile('c:\sample.jpg', ftBlob);
qry.Parameters.ParamByName('idVal').Value := 1;
toute suggestion?
- veuillez ajouter plus de détails, est-il SQL server nous parlons et ce composant est représenté par votre
qry
variable?
Vous devez vous connecter pour publier un commentaire.
Il y a beaucoup de marches ici sur le chargement des images de la base de données, mais je n'ai pas à en trouver un avec mise à jour ou d'insérer des paramètres.
Vous pouvez tout simplement créer un objet graphique à votre paramètre.
Si vous souhaitez stocker différents types de graphiques, vous devez ajouter une colonne
en conservant les Informations de type de graphique doit être stockées (par exemple, jpeg,bmp,png).
pour être en mesure de créer le besoin de TGraphic classe descendant si vous voulez récupérer une image à partir de la base de données.
Pour charger un champ BLOB dans une image, vous devez utiliser TDataSet.CreateBlobStream.
Pour stocker l'image en arrière, vous aurez besoin de faire l'inverse:
TDBImage
est uniquement conçue pour fonctionner avec les bitmaps (lorsque le champ estftGraphic
), de sorte qu'il ne fonctionne pas avec les images JPEG directement. La meilleure chose à faire est de charger la goutte au format JPEG, et de l'attribuer à un standardTImage.Picture.Graphic
dans un gestionnaire d'événements pour l'ensemble des données (comme c'estAfterScroll
événement).enregistrer dans la base de données:
Charge de db:
try..finally
bloc ici plutôt que d'inutilesFreeAndNil
pour un objet local.