IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

inserer une image dans une base de donnee access [Base de donn�e]


Sujet :

C++Builder

  1. #1
    Membre tr�s actif

    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2011
    Messages
    181
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 181
    Billets dans le blog
    1
    Par d�faut inserer une image dans une base de donnee access
    slt a tous, je suis un debutant dans la programmation sous l'environnement builder
    j'ai cree une petite application dans la quelle je manipule une base de donnee access, j'ai r�ussi a lire des donnees a partir de cette base, et a ecrire des donnee de type chaine de caractere ( ansistring ), ou des entiers.
    mais j'ai renconter un probleme pour stocker une image (donnee de type blob)
    ps : j'utilise les composant TSession, TQuery, TDatabase de la bde
    avec mes remerciments d'avance

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut
    Une solution est de sauvegarder tes images sur ton disque dur (ou un serveur), et d'enregistrer dans la base de donn�e uniquement le chemin et le nom de l'image (dans un champ texte)...

  3. #3
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    Merci de fournir le code que tu as d�j� �crit !
    Tu utilise le BDE, c'est fonctionnel m�me si obsol�te

    Lire aussi la FAQ C++ Builder et Delphi et la fonction recherche sur le forum, c'est une question qui a d�j� �t� solutionn�e des dizaines de fois !


    Comment ins�rer et r�cup�rer un fichier dans un champ de type BLOB ?
    Comment lire directement l'image dans la base et l'afficher dans un TDBGrid ?


    [Base de donn�e] Sauvegarder et R�cup�rer image
    Cr�er et ins�rer un blob dans une base Access
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre tr�s actif

    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2011
    Messages
    181
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 181
    Billets dans le blog
    1
    Par d�faut reaction a vos reponses
    j'ai plutot opte pour les composants ado du compilateur, car selon certain, il serai plus � jour, et l'acce serais plus rapide ,je suis entrain de m'initie a leur utilisation
    comme j'ai programm� mon application en utilisant bde, je suis entrain de modifier mon programme afin que cette modification prenne effet
    d�s que j'aurai termine cette tache, je vais m'inter�s� a l'insertion de donnees blob a la base de donnee avec mon edi, et je vous communiquerai si ca marche, ou si ca ne marche pas avec la suite d'instruction que j'ai entr�
    veuillez croire a mes remerciements les plus cencere pour vos reponces instantan�es

  5. #5
    Membre tr�s actif

    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2011
    Messages
    181
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 181
    Billets dans le blog
    1
    Par d�faut Probleme percistant
    Le probleme perciste, d�s que j'essais d'executer l'insertion dans la base, un message d'erreur "Erreur de syntaxe dans l'instruction INSERT INTO" s'affiche a l'ecran
    voici une portion du code que j'ai entre et que j'avais trouve sur ce forum

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    TADOQuery *Q;
    Q->Clear ();
    Q->SQL->Add ("INSERT INTO Image (Adr_image, Image) VALUES (:PAdr_image ,:PImage)";);
    Q->ParamCheck = true;
    Q->Parameters->ParamByName("PAdr_image")->Value = ExtractFileName (Chemin); 
    Q->Parameters->ParamByName("PImage")->LoadFromFile(chemin, ftBlob) ;
    Q->ExecSQL ();
    ou encore

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    TADOQuery *Q;
    Q->Clear ();
    Q->SQL->Add ("INSERT INTO Image (Adr_image, Image) VALUES (:PAdr_image ,:PImage)";);
    Q->ParamCheck = true;
    Q->Parameters->ParamByName("PAdr_image")->Value = ExtractFileName (Chemin); 
    Q->Parameters->ParamByName("PImage")->LoadFromFile(chemin, ftGraphic) ;
    Q->ExecSQL ();
    ou encore

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    TADOQuery *Q;
    Q->Clear ();
    Q->SQL->Add ("INSERT INTO Image (Adr_image, Image) VALUES (chemin ,:PImage)";);
    Q->ParamCheck = true;
    Q->Parameters->ParamByName("PImage")->LoadFromFile(chemin, ftBlob) ;
    Q->ExecSQL ();
    comme vous avez pu le constater, je veut inserer des images presentes sur HDD dans une base de donn�es sans passer par un TImage

    toute-fois, je tient a mexcuse pour ne pas avoir donner signe de vis durant toute cette periode parce que j'etais occupe ailleurs

  6. #6
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    Clear �a n'existe pas dans TADOQuery !
    Tu ne fais pas de New non plus !
    "...,:PImage)";);, c'est quoi ce ; apr�s la chaine, ne devrait-il pas �tre dedans ?

    Je suppose que c'est un code d�monstratif mais tu pourrais au moins mettre quelque chose d'exact surtout si il s'agit d'une erreur de syntaxe (m�me si c'est une erreur SQL)
    Si tu ne fournis pas le code exact qui provoque l'erreur, tu as pu en recopiant autre chose �liminer la source de l'erreur !

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Q->Clear ();
    Q->SQL->Add ("INSERT ...
    remplace �a par

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Q->SQL->Clear();
    Q->SQL->Add ("INSERT ...
    ou plus simplement

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Q->SQL->Text = "INSERT ...
    Image est le bon nom de tables ?
    Tu as un champ qui s'appellent image.image ?

    Dans le 3eme cas, chemin, tu le sort de ton chapeau ? pas de "" ou '' pour indiquer une chaine dans le SQL
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre tr�s actif

    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2011
    Messages
    181
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 181
    Billets dans le blog
    1
    Par d�faut
    j'ai fait
    pour monterer que j'ai utilise un composant TADOQuery avec un TADOConnection, j'aurai pu mettre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    TADOQuery *Q = new TADOQuery (Application);
    si, j'avais fait
    j'airai automatiquement us un message d'erreur gere par le compilateur, pas
    un message d'erreur SQL
    effectivement, j'ai fait
    sinon, j'aurai us un message d'erreur gere le compilateur, car clear n'est pas un membre de la class TADOQuery, c'est un membre de SQL(c'est juste une erreur de frape lors de la copie du code sur ce forum)
    Oui, j'ai une table nomm�e image a la l'interieur de la base image et qui a contient deux champs : Adr_image, image
    j'ai pas mis chemin, a la place j'ai fait
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Q->Parameters->ParamByName("PImage")->LoadFromFile(OpenDialog1->FileName, ftBlob) ;
    donc, je veut recuperer l'adresse de l'image sur le disque en utilisant un TOpenDialog, pour pouvoir inserer l'image dans la base a la suite d'un appuis sur un button que j'ai positionne sur ma fenetre
    donc, j'ai fait chemin sur la discution du forum pour simplifier la compr�hension
    C'est vrai que j'ai copie le code de faq builder, mais je l'ai modifie selon les besoins de mon programme
    c-a-dire, le probleme est ailleurs.
    si quelqu'un sait ou est l'erreur
    ou si vous connaissez un autre moyen d'inserer des images dans la base en utilisant les composants ADO, je suis preneur.

  8. #8
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    Question con, tu as pens� � doubler les antislash d'une chemin ?
    Je ne connais pas ACCESS mais si il fonctionne comme la majorit� des SQL, le \ est un caract�re d��chappement comme en C pour �crire \n, \r, \t ... mais il sert aussi a �chapper le caract�re de chaine " ou ', certaines DB supporte comme en Delphi, le doublage du caract�re comme echappement
    Code chemin : S�lectionner tout - Visualiser dans une fen�tre � part
    C:\Dossier\Fichier
    devenant
    Code chemin : S�lectionner tout - Visualiser dans une fen�tre � part
    C:\\Dossier\\Fichier
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #9
    Membre tr�s actif

    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2011
    Messages
    181
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 181
    Billets dans le blog
    1
    Par d�faut
    Oui, je confirme, j'ai pas double les antislash, car cette information m'es nouvelle
    j'ai fait aussi une autre erreur, celle ci de manipulation, le champ sur m'a base de donn�e est not� Adr_img, or, comme vous pouvez le remarquer, j'ai fait Adr_image dans l'instruction SQL insert into
    j'ai corrig� les erreurs, et je les test�, ca ne marche qu'on utilisant des composants BDE, avec ADO, je n'ai pas r�ussi a le faire fonctionn�
    j'ai entr� les instructions suivantes :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    TSession *s = new TSession (Application);
    TDatabase *d = new TDatabase (Application);
    TQuery *Q = new TQuery (Application);
    Q->SQL->Clear() ;
    Q->SQL->Add("Insert into Image (Adr_img, Image) VALUES ('"D:\Mes etudes\\XXXXX.bmp"', :Image);");
    Q->ParamCheck = true;
    Q->Params->ParamByName("Image")->LoadFromFile("D:\Mes etudes\\XXXXX.bmp", ftBlob);  
    Q->ExecSQL() ;
    Je tient a remercie tous ce qui mon aider a resoudre ce probleme, et on particulier ShaiLeTroll qui s'est mont� d'une extreme gentillesse

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [D�butant] Manipulation d'images : int�grer une image dans une image
    Par noscollections dans le forum VB.NET
    R�ponses: 2
    Dernier message: 17/10/2014, 11h51
  2. Comment placer une image dans une table de une base de donn�es
    Par Arnold Falanga dans le forum MS SQL Server
    R�ponses: 2
    Dernier message: 22/07/2012, 09h29
  3. inserer un lien vers une image dans une news
    Par jerrypeeren dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 2
    Dernier message: 22/07/2008, 22h51
  4. Insérer une légende dans une image avec une police plus petite
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    R�ponses: 3
    Dernier message: 29/04/2006, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo