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

API standards et tierces Java Discussion :

[jawin][DLL][VB] ADODB.recordset


Sujet :

API standards et tierces Java

  1. #1
    Membre confirmé

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Par défaut [jawin][DLL][VB] ADODB.recordset
    Bonjour,
    actuellement j'essaie d'interfacer des DLLs écrites en VB avec une appli java.

    JNi étant un brin casse-bonbon, j'ai trouvé jawin.
    http://jawinproject.sourceforge.net/

    Cette librairie permet de simplifier l'interfaçage.

    Ca fonctionne très bien pour les fonctions VB qui retournent des types simples (int, double, string etc) mais là je bute sur une focntion VB qui me renvoie un ADODB.recordset.

    La fonction créée par Jawin renvoie un DispatchPtr qui est un objet de la librairie jawin.
    Hors je ne sias pas manipuler cet objet, la doc étant assez obscure, et les méthodes et fonction de l'objet en question demandent toutes des paramètres, dont je n'ai pas le moindre début d'idée de ce à quoi ça peut correspondre.

    Donc, pour les connaisseurs de jawin, savez vous comment manipuler un DispatchPtr et lui faire sortir les données contenues dedans ?

    Avez vous une méthode pour manipuler un ADODB.recordset via jawin ?

    Merci pour votre aide.

  2. #2
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Personnellement, j'utilise toujours les méthodes préconnisées par SUN : même si celles-ci semblent plus difficiles à mettre en oeuvre.

    Cela permet tout d'abord de trouver de l'aide quand on est bloqué, de trouver aussi de nombreux tutoriels, de réaliser des programmes qui fonctionnent dans tous les cas prévus par la technologie Java.

    Enfin cela permet de bien assimiler la philosophie de SUN.

    A+

  3. #3
    Membre confirmé

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Par défaut
    je suis bien heureux de savoir que tu utilises JNI, mais ça ne répond pas à ma question.

    Quand une fonction de DLL te renvoie un ADODB.recordset, comment le gère tu avec JNI ?

  4. #4
    Membre confirmé

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Par défaut [DLL][VB][Jawin] java fait joujou avec ADODB.recordset en VB
    tout est bien qui finit bien, j'ai fini par trouver.
    Je suis pas sur que ça intéresse grand monde, mais sais-t-on jamais, ça peut toujours servir.

    le but suprême : Java étant désormais la norme de l'entreprise, mais n'ayant pas le temps ni les moyens de ré-inventer la roue développée en VB, il fallait trouver un moyen d'utiliser les DLLs développées en interne (comprenant toutes les fonctions VB) dans un programme java.

    La solution : JNI c'est le standard mais c'est pas très satisfaisant, d'abord parce que la procédure est lourde (il faut faire une nouvelle DLL incluant le fichier *.h généré par javah.exe et la DLL que l'on veut utiliser) et ensuite parce que JNI ne gère que les types simples (les chiffres et les lettres, laurent romechko si tu nous regardes ...)

    Donc ce merveilleux site qu'est développez.com propose une librairie : JAWIN http://jawinproject.sourceforge.net/
    qui permet très simplement de générer des "classes d'interfaçage" entre la DLL et une appli java à l'aide d'un utilitaire Jawin Type Browser (JTB). On peut utiliser des méthodes VB contenues dans une DLL aussi simplement que si c'était une classe java standard.

    Hors, j'ai une fonction DLL qui me renvoie un ADODB.recordset. Le genre de bouzin que JAWIN n'interprète pas et laisse de coté.

    La solution :
    Passer la librairie windows c:\winnt\system32\MSADO20.TLB dans JTB.
    On obtient des "classes d'interfacage" des objets VB ;-))

    et après ya plus qu'a jouer au lego.

    Fonds est la "super-classe" dérivée d'une des classes contenues dans la DLL.
    _Fonds est la classe contenant les méthodes à utiliser (comme FdsIsin(String) par ex).
    Par défaut, le ADODB.recordset est typé comme un DispatchPtr par JAWIN, COMPtr est la classe à partir de laquelle DispatchPtr est étendu.
    Ces deux classes appartiennent à JAWIN.
    _Recordset est la classe générée par JTB à partir de MSADO20.TLB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    fds=new Fonds();
    objFds=new _Fonds(fds.CLSID);
    comPtr=(COMPtr)objFds.FdsIsin("ACT12");	
    recordset=new _Recordset(comPtr.queryInterface(_Recordset.class));
     
    System.out.println("nb Lignes="+recordset.getRecordCount());	
     
    String uneChaine="+recordset.getString(2,1,"|","-","NULL"));
    et voilà.

    si vous avez trouvé des méthodes plus simples pour arriver au même résultat, je suis tout ouïe.

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

Discussions similaires

  1. Type de données d'un champ d'un ADODB.Recordset
    Par GodGives dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/12/2007, 11h01
  2. Erreur ADODB.Recordset error '800a0e7d'
    Par Pokerstar dans le forum ASP
    Réponses: 10
    Dernier message: 14/05/2007, 14h45
  3. Problème avec adodb.recordset
    Par Pierre Fauconnier dans le forum VB.NET
    Réponses: 4
    Dernier message: 07/05/2007, 15h43
  4. ADODB.Recordset error '800a0cc1'
    Par fgerard dans le forum ASP
    Réponses: 2
    Dernier message: 29/08/2006, 16h11
  5. Problème avec ADODB.Recordset
    Par Edouard Kaiser dans le forum ASP
    Réponses: 13
    Dernier message: 09/08/2005, 17h54

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