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

InterBase Discussion :

[IB71] mon Blob ne marche pas correctement


Sujet :

InterBase

  1. #1
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 100
    Points : 64
    Points
    64
    Par défaut [IB71] mon Blob ne marche pas correctement
    Langage : C#
    Framework : 1.1
    Interbase version 7.1
    UDF utilisé : FreeUDFLib.dll
    Fonction utilisée : StrBlob

    J'ai déclarer une fonction externe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE EXTERNAL FUNCTION INSERTBLOB
    VARCHAR(255) CHARACTERE SET NONE
    RETURNS BLOB FREE_IT
    ENTRY_POINT 'StrBlob' MODULE_NAME 'FreeUDFLib.dll'
    et j'insère avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into testtab (desc5,idclient) 
    values (INSERTBLOB('lsdkfjsdklfjsdlk'),0)
    Dans ma table, je vérifie avec IBConsole les données inscrites.
    Je vois qu'il y a bien eu une inscription et dans la colonne desc5 il y a écrit " (MEMO) ".
    Je double click dessus et une fenetre de description s'affiche seulement je trouve juste " | " dedans ?? au lieu de " lsdkfjsdklfjsdlk "...

    Et pour vérifier, je me dit que ca marcherait peut etre... mais voila... il n'y a rien d'afficher...
    Faut-il écrire une autre fonction externe du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE EXTERNAL FUNCTION READBLOB
    BLOB
    RETURNS VARCHAR(32000) CHARACTER SET NONE FREE_IT
    ENTRY_POINT 'BlobAsPChar' MODULE_NAME 'FreeUDFLib.dll'
    ceci dit, cette fonction ne marche pas car lorsque je la teste avec isql il me met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Error at line 1 - Unable to complete network request to host "server"
    Error reading data from the connection
    SQL - select READBLOB(desc5) from testtab;

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Je ne connais pas C# ni le fournisseur IbOleDb mais je serais étonné que celui ci ne permettent pas la gestion des BLOB.

    Je te conseil donc avant d'essayer d'utiliser les fonctions de l'UDF rfunc d'essayer une méthode plus standard.

    Pour celà peut être devrais tu demander conseil dans le forum Développement DotNet car c'est en rapport avec le C# et le fournisseur IbOleDb (et ce quelque soit la base de donnée cible).

    Bon courage

  3. #3
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    merci, j'essaierai de faire un tour sur le forum dotnet.

    Cependant, j'ai réussi à moitié à inscrire du texte dans un blob mais pas le lire.

    Pour inscrire j'ai reécris une fonction WRITEBLOB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE EXTERNAL FUNCTION WRITEBLOB
    CSTRING(254) CHARACTER SET NONE
    RETURNS BLOB FREE_IT
    ENTRY_POINT 'StrBlob' MODULE_NAME 'FreeUDFLib.dll'
    Avec cette fonction, j'arrive donc à inscrire du texte dans le champs blob (size 64) et j'arrive également à le voir en ouvrant la table.

    En faisant l'inverse pour le lire : READBLOB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE EXTERNAL FUNCTION READBLOB
    BLOB
    RETURNS CSTRING(254) CHARACTER SET NONE
    ENTRY_POINT 'BlobAsPChar' MODULE_NAME 'FreeUDFLib.dll';
    ca ne marche pas hélas...

    si quelqu'un à une petite idée...

    Pour le moment je passe par une alternative qui est de créer un domaine varchar de taille de 10000 car ce que je stock n'est que du texte.
    L'inconvénient est juste qu'il ne faut pas que la taille totale de mes champs pour une table ne dépasse pas les 60k ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] mon code ne marche pas sur un autre PC
    Par yannph dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/01/2006, 21h03
  2. mon select ne marche pas.
    Par Aurèl90 dans le forum Requêtes et SQL.
    Réponses: 16
    Dernier message: 01/12/2005, 15h59
  3. [CSS] Une partie de mon CSS ne marche pas sous IE
    Par YanK dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 28/10/2005, 17h58
  4. mon select count(*) marche pas
    Par zorba49 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 05/08/2005, 08h28
  5. Tcsh - Mon script ne marche pas
    Par Aramis dans le forum Linux
    Réponses: 5
    Dernier message: 13/05/2004, 18h26

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