Bonjour à tous.

Je souhaite accéder à une base access sur un PC Linux en Red Hat 3. Sur ce PC, il y a donc mon fichier *.mdb et Oracle version 9.2.0

Après plusieurs petites recherches, j'ai trouvé le bon driver pour lire mon fichier *.mdb (j'ai choisi libmdbodbc.so).

J'ai ensuite fouillé sur internet pour trouver un peu d'aide.

J'ai bien créé mon DSN, dont voici les détails :

Pour mon fichier odbcinst.ini :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
[MicrosoftAccess]
Description	= ODBC for Microsoft Access
Driver		= /usr/lib/libmdbodbc.so
Setup		= /usr/lib/libmdbodbc.so
FileUsage	= 1
et pour mon fichier odbc.ini :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
[DSN]
Description		= MicrosoftAccess Base
Driver		= MicrosoftAccess
Database = /home/users/data/mestests/base.mdb
Servername = localhost
Donc bon, j'essaie de voir si mon DSN est bien configuré, OpenOffice.org le voit, j'me dis : "Chouette, ça doit être bon !"

Ben non, c'est pas fini. Parce que je dois aller lire ma base par programmation...

Donc je me dis, essayons les "heterogeneous services" d'Oracle, ça doit être bien tout ça.

Donc je configure mes p'tits fichiers qui vont bien.
Mon fichier "inithsdsn.ora" localisé dans $ORACLE_HOME/admin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
HS_FDS_CONNECT_INFO = DSN
HS_FDS_TRACE_LEVEL = 0
HS_DB_NAME = hsdsn
HS_FDS_SHAREABLE_NAME = /usr/lib/libmdbodbc.so
Mon fichier "listener.ora" placé dans $ORACLE_HOME/network/admin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 SID_LIST_LISTENER=
   (SID_LIST=
       (SID_DESC=
	  (PROGRAM=hsodbc)
	  (SID_NAME=DSN)		       
	  (ORACLE_HOME=/home/oracle/product/9.2.0)
	)
   )
et mon fichier "tnsnames.ora" placé aussi dans $ORACLE_HOME/network/admin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
hsdsn  =
  (DESCRIPTION=
    (ADDRESS=
    	(PROTOCOL=tcp)
	(HOST=localhost)
	(PORT=1521)
    )
    (CONNECT_DATA=
    	(SERVICE_NAME=DSN)
    )
    (HS=OK)
  )
Une fois tout ça effectué, je suis contente normalement. J'me dis, ça devrait marcher...

Bon je mets les droits sur le fichier "listener.log" sinon ça marche pas.

Et là, je vois aucun service quand je lance la commande "lsnrctl start".

Voilà ce que j'obtiens (oh joie!) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 07-MAY-2007 13:54:43
 
Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
 
Starting /home/oracle/product/9.2.0/bin/tnslsnr: please wait...
 
TNSLSNR for Linux: Version 9.2.0.4.0 - Production
System parameter file is /home/oracle/product/9.2.0/network/admin/listener.ora
Log messages written to /home/oracle/product/9.2.0/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
 
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 9.2.0.4.0 - Production
Start Date                07-MAY-2007 13:54:43
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   /home/oracle/product/9.2.0/network/admin/listener.ora
Listener Log File         /home/oracle/product/9.2.0/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
The listener supports no services
The command completed successfully


Bon alors qu'est-ce que j'ai mal fait ? Comment je peux créer le lien entre ma base de données access base.mdb et ce truc ? Comment je peux faire des requêtes là-dedans ?

Please, help me !