Lister sources de données ODBC: driver servertec ou jdbc?

skystef Messages postés 16 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 1 mai 2008 - 15 avril 2008 à 11:16
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 - 15 avril 2008 à 18:20
Bonjour,

Mon application est censée lister les sources de données ODBC installées sur la machine. Les précédents développeurs ont utilisé un driver publié par Servertec et m'ont assurés que chez eux ça fonctionnait. Voilà le code qui permettait de récuperer les sources de données ODBC:

if (type.getSelectedItem().equals("SourceMicrosoft"))
        {
            try {
                Vector listenomsources= new Vector();
               
                for(Enumeration listesources = OdbcManager.getUserDataSources();listesources.hasMoreElements();)
                {                   
                    OdbcDataSource source =  (OdbcDataSource)listesources.nextElement();
                    String nomsource = source.getName();
                    listenomsources.add(nomsource);
                    nom.addItem(nomsource);
                }
                return listenomsources;   
            }
            catch (Win32Exception e)
            {
               
                e.printStackTrace();
               
            }
           
        }

Bien sûr, ça ne fonctionne pas. J'ai un message d'erreur comme s'il manquait un pilote:

Servertec (R) Foundation Classes Version 1.3.3 09/04/2005 Open Source Release
Copyright (C) 2001-2005 Servertec. All rights reserved.

Exception occurred during event dispatching:
java.lang.UnsatisfiedLinkError: no sfc_w2k in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)

pourtant j'ai bien vérifié, le driver est bien référencé dans le Classpath et je n'ai pas d'erreur lors des import.

Peux-t-on s'y prendre différemment pour lister les sources de données ODBC installé sur le système? (XP SP2 dans mon cas).
Sur le site de servertec, il y a deux jar correspondant au driver. L'un est semble-t-il un installateur mais il ne fonctionne pas:

http://www.servertec.com/products/sfc/sfc.html

Merci pour votre aide,

3 réponses

Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
15 avril 2008 à 11:50
Salut,

<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title></title><meta name="GENERATOR" content="OpenOffice.org 2.4 (Linux)" /><style type="text/css"><!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
--></style>l'erreur que tu donnes n'est pas une
erreur de classpath mais de chargement de librairie native... regarde
dans la doc (ou FAQ) du driver que tu utilises ils doivent expliquer
comment configurer le tout pour que les lib soient chargées comme il
le faut.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
skystef Messages postés 16 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 1 mai 2008
15 avril 2008 à 17:40
Je n'ai rien trouvé sur leur site (vieux et pas très bien documenté à mon avis)... Lorsque l'on télécharge le driver, y'a un package Source (sfc.jar, celui renseigné dans le classpath) et un fichier setup_src.jar. Peut-être que je dois installer quelque chose en plus ce n'est précisé nulle part. Et setup_src ne se lance pas quand je double-clique dessus..
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
15 avril 2008 à 18:20
Salut,

bon pour faire simple le jar "setup_sfc.jar" faut le voir comme un gros zip rien de plus ^^
une fois décompressé tu as les fichiers et répertoires suivant :

.
`-- sfc
    |-- bin
    |   |-- sfc_w2k.dll
    |   |-- sfc_w9x.dll
    |   `-- sfc_wnt.dll
    |-- changelog.html
    |-- changes.txt
    |-- contact.html
    |-- copyright.html
    |-- copyright.txt
    |-- docs
    |   |-- allclasses-frame.html
    |   |-- allclasses-noframe.html
    |   |-- constant-values.html
    |   |-- deprecated-list.html
    |   |-- help-doc.html
    |   |-- index-all.html
    |   |-- index.html
    |   |-- overview-summary.html
    |   |-- overview-tree.html
    |   |-- package-list
    |   |-- resources
    |   |   `-- inherit.gif
    |   |-- serialized-form.html
    |   |-- stec
    |   |   `-- sfc
    |   |       `-- win32
    |   |           |-- BeepType.html
    |   |           |-- Console.html
    |   |           |-- CreateFileAttribute.html
    |   |           |-- Drive.html
    |   |           |-- DriveType.html
    |   |           |-- Env.html
    |   |           |-- ErrorMode.html
    |   |           |-- EventLog.html
    |   |           |-- EventLogRecord.html
    |   |           |-- EventLogType.html
    |   |           |-- File.html
    |   |           |-- FileAccessMode.html
    |   |           |-- FileAttribute.html
    |   |           |-- FileEnumerator.html
    |   |           |-- FileLockMode.html
    |   |           |-- FileMoveMode.html
    |   |           |-- FileOperation.html
    |   |           |-- FileSeekMethod.html
    |   |           |-- FileShareMode.html
    |   |           |-- FileSystem.html
    |   |           |-- FileSystemChangeEvent.html
    |   |           |-- FileSystemChangeHandler.html
    |   |           |-- FileSystemChangeListener.html
    |   |           |-- FileSystemChangeNotification.html
    |   |           |-- FileSystemFlag.html
    |   |           |-- FileType.html
    |   |           |-- HotKeyModifier.html
    |   |           |-- IOPort.html
    |   |           |-- Network.html
    |   |           |-- NetworkResourceDisplayType.html
    |   |           |-- NetworkResourceEnumerator.html
    |   |           |-- NetworkResourceScope.html
    |   |           |-- NetworkResourceType.html
    |   |           |-- NetworkResourceUsage.html
    |   |           |-- OdbcDataSource.html
    |   |           |-- OdbcDriver.html
    |   |           |-- OdbcManager.html
    |   |           |-- RandomAccessFile.html
    |   |           |-- RegistryKey.html
    |   |           |-- RegistryValueType.html
    |   |           |-- Shortcut.html
    |   |           |-- System.html
    |   |           |-- Win32Exception.html
    |   |           |-- Win32Message.html
    |   |           |-- package-frame.html
    |   |           |-- package-summary.html
    |   |           |-- package-tree.html
    |   |           `-- sfc.html
    |   `-- stylesheet.css
    |-- faq.html
    |-- features.html
    |-- future.html
    |-- future.txt
    |-- gpl_license.html
    |-- images
    |   |-- 25perc.gif
    |   |-- builtby.gif
    |   |-- builtbyani.gif
    |   |-- builtusing.gif
    |   |-- builtusingani.gif
    |   |-- builtwith.gif
    |   |-- builtwithani.gif
    |   |-- close.gif
    |   |-- download.gif
    |   |-- downloadani.gif
    |   |-- filler.gif
    |   |-- logo.gif
    |   |-- logo_alt.gif
    |   |-- open.gif
    |   |-- powered.gif
    |   |-- poweredani.gif
    |   |-- serverside.gif
    |   `-- serversideani.gif
    |-- index.html
    |-- installation.html
    |-- introduction.html
    |-- knowledge.html
    |-- knowledgebase.txt
    |-- legal.html
    |-- lib
    |   `-- sfc.jar
    |-- license.txt
    |-- logos.html
    |-- privacy_statement.html
    |-- readme.txt
    |-- release.html
    |-- requirements.html
    |-- samples
    |   |-- beep.class
    |   |-- beep.html
    |   |-- beep.java
    |   |-- driveinfo.class
    |   |-- driveinfo.html
    |   |-- driveinfo.java
    |   |-- envtest.class
    |   |-- envtest.html
    |   |-- envtest.java
    |   |-- eventlog.class
    |   |-- eventlog.html
    |   |-- eventlog.java
    |   |-- fileinfo.class
    |   |-- fileinfo.html
    |   |-- fileinfo.java
    |   |-- fstest.class
    |   |-- fstest.html
    |   |-- fstest.java
    |   |-- hostname.class
    |   |-- hostname.html
    |   |-- hostname.java
    |   |-- index.html
    |   |-- listfs.class
    |   |-- listfs.html
    |   |-- listfs.java
    |   |-- locktest.class
    |   |-- locktest.html
    |   |-- locktest.java
    |   |-- logoff.class
    |   |-- logoff.html
    |   |-- logoff.java
    |   |-- monitor.class
    |   |-- monitor.html
    |   |-- monitor.java
    |   |-- net.class
    |   |-- net.html
    |   |-- net.java
    |   |-- poweroff.class
    |   |-- poweroff.html
    |   |-- poweroff.java
    |   |-- rastest.class
    |   |-- rastest.html
    |   |-- rastest.java
    |   |-- reboot.class
    |   |-- reboot.html
    |   |-- reboot.java
    |   |-- regtest.class
    |   |-- regtest.html
    |   |-- regtest.java
    |   |-- shortcut.class
    |   |-- shortcut.html
    |   |-- shortcut.java
    |   |-- shutdown.class
    |   |-- shutdown.html
    |   `-- shutdown.java
    |-- terms_of_use.html
    |-- trademarks.html
    `-- trademarks.txt

et comme tu peux le voir le répertoire bin contient des lib natives... 10 contre 1 que c'est une d'elles qu'il te manque...

fin bon tu as également un fichier readme.txt qui contient une section 'installation' (comme sur leurs site) mentionnant ceci :

Use the following instructions to install Servertec Foundation Classes.


<ol compact= "compact"><li> Install Java JDK version 1.1.x or later.

Follow JavaSoft's instructions for installing the Java JDK.



</li><li> Extract setup_sfc.jar file.

c:
cd \
jar -xvf path \setup_sfc.jarpath the directory containing setup_sfc.jar.



</li><li> Define environment variables in c:\autoexec.bat file.



<ol compact ="compact" type= "I"><li> Define CLASSPATH
set CLASSPATH = path \lib\sfc.jar;path\samples;%CLASSPATH%path the base directory where SFC was installed, normally
c:\sfc.



</li><li> Define PATH
set PATH =path\bin;%PATH%path the base directory where SFC was installed, normally
c:\sfc.


</li></ol>

</li><li> Restart the computer.
</li></ol>donc ma question est la suivante :
as-tu suivit l'installation et surtout ajouté le répertoire bin (qui ne contient que des lib natives) dans ton 'path' ?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0