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

Bases de données Delphi Discussion :

Comment mettre à jour un champ BLOB avec une TIBQUERY ?


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Comment mettre à jour un champ BLOB avec une TIBQUERY ?
    Bonjour,

    Dans une table IB possedant un champ image déclaré en BLOB SUB_TYPE 0 comment avec un TIBQUERY mettre à jour ce champ avec une nouvelle image passée dans un TMEMORYSTREAM ?

    Un exemple de code source serait bien venu

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut J'ajoute une précision
    Comment écrire la requete telle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'UPDATE MaTable SET MonChampBlob='+???+' WHERE MyPrimaryKey='+IntToStr(value)
    Par quoi remlacer les ???

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Je passerais par un paramètre, c'est ce qui me semble le plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    with IBquery1 do
    begin
      SQL.Clear;
      SQL.Add('UPDATE MaTable');
      SQL.Add('SET MonChampBlob = :MonBlob');
      SQL.Add('WHERE MyPrimaryKey = ' + IntToStr(value));
      ParamByName('MonBlob').LoadFromStream(MS, ftBlob);
      Prepare;
      ExecSQL;
      Close;
    end;
    Avec MS ton MemoryStream.
    Je n'ai pas testé, mais ça devrait le faire.

    @+ Claudius

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Ok Ca à l'air de marcher
    Je pense que cela fonctionne. En tous cas je n'ai pas eu d'erreur. Il faut maintenant que je vérifie en allant lire ce Blob.
    Je te tiens au courant

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Ok et mille merci
    Je viens de vérifier celà fonctionne

    Puisque tu semble bien connaître IB j'ai un problème avec les champs de type NUMERIC(5,2) ou autres dimensions. Quand je rentre un single <0 je déclenche systématiquement l'erreur :

    EIBInterBaseError avec le message 'arithmetic exception, numeric overflow, or string truncation.

    J'ai vérifié si j'entre abs(MonSingle) je n'ai plus l'erreur

    Si tu savais comment corriger le problème ce serait super

    Encore mille merci

Discussions similaires

  1. mettre a jour un champ BLOB dans une BD distante
    Par zaineb.z dans le forum SQL
    Réponses: 3
    Dernier message: 29/02/2008, 18h23
  2. Mettre à jour un champ Boolean avec une clause "WHERE"
    Par niano dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/10/2007, 11h29
  3. Comment mettre à jour 1 champ d'une table via une autre tabl
    Par cpasmoibiensur dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/02/2006, 13h33
  4. Réponses: 3
    Dernier message: 09/07/2004, 10h23
  5. Champs BLOB avec une connexion ADO
    Par Ol' dans le forum Bases de données
    Réponses: 6
    Dernier message: 18/05/2004, 19h21

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