Accès base de données

Accès base de données - SQL/NoSQL - Programmation

Marsh Posté le 19-12-2007 à 14:29:07    

Bonjour,
 
Première information je suis débutant en base de donnée.
 
J'ai un problème de connexion avec des bases.
J'utilise excel et ADO pour me connnecter a une base comme suit :
 
Fichier tnsnames.ora :
 
 
bdd01 =  
  (DESCRIPTION =  
    (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(Host = HOST_01)(Port = 1522)))
    (CONNECT_DATA = (SID = bdd01))
  )
 
Ma macro vba :
 
Set BDD.connection = New ADODB.connection
JOS.connection.Open "Provider=MSDAORA.1 ;User ID=bdd01 ;Password=bdd01" ;data source=MASOURCE" ;persist security info=false"
 
Là ça fonctionne
 
Maintenant  
 
Fichier tnsnames.ora :
 
bdd01 =  
  (DESCRIPTION =  
    (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(Host = HOST_01)(Port = 1522)))
    (CONNECT_DATA = (SID = bdd01))
  )
bdd02 =  
  (DESCRIPTION =  
    (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(Host = HOST_02)(Port = 1522)))
    (CONNECT_DATA = (SID = bdd01))
  )
 
et là çà ne fonctionne plus.
 
Premièrement, je ne connaît les liens entre la macro excel et les éléments du tnsnames.ora.
 
Est ce le fait d’avoir SID=bdd01 avec des HOST différents
 
Je ce que je voudrais c'est pouvoir accéder a une base qui porte le même nom mais sur des serveurs différents, simplement en modifiant la macro  
 
JOS.connection.Open "Provider=MSDAORA.1 ;User ID=bdd01 ;Password=bdd01" ;data source=MASOURCE" ;persist security info=false"
 
JOS.connection.Open "Provider=MSDAORA.1 ;User ID=bdd02 ;Password=bdd01" ;data source=MASOURCE" ;persist security info=false"
 
 
 
Merci

Reply

Marsh Posté le 19-12-2007 à 14:29:07   

Reply

Marsh Posté le 19-12-2007 à 14:38:00    

HOST, c'est le nom du serveur de base de données.
 
T'es sûr d'avoir deux serveurs différents ?
 
Pour le reste ben... Y'a rien d'anormal... Mise à part le port... C'est 1521 le port Oracle standard...
 
Voilà un exemple de tnsnames.ora (que j'utilise) :
Moi j'utilise "service_name" plutôt que sid, mais logiquement ça revient au même, le sid si ma mémoire est bonne c'est juste pour pouvoir se connecter à des serveurs oracle < 8i


 
XE_SERVEUR =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = serveur)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xe)
    )
  )
 
XE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xe)
    )
  )
 
FGR_TEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.9.201.2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test9)
    )
  )
 
FGR =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.9.201.2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = GNX)
    )
  )
 
BCI =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = srvgnxtrt)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = gnxbci)
    )
  )
 
 
BCI44 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = srvbci)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = gnx)
    )
  )
 
AZ =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = gcebdd)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = GNX)
    )
  )


Message édité par MagicBuzz le 19-12-2007 à 14:42:04
Reply

Marsh Posté le 19-12-2007 à 14:38:27    

Pour tester ton tnsnames.ora, lance SQL+, tu verras bien s'il arrive à se connecter à la base.

Reply

Marsh Posté le 19-12-2007 à 14:43:51    


Oui c'est bien des serveurs différents pour plus d'infos 1 en france et 2 autres à l'étranger
 
Pour ce qui est sql+, je ne connais pas
 
pour info si je déclare un seul "HOST" dans le tnsname, ça fonctionne bien
 
Merci à vous

Reply

Marsh Posté le 19-12-2007 à 14:49:44    

ceci dit, je sais pas pourquoi tu utilises un user différent dans ton connection string.
 
tu passes par un dsn, faut donc clôner ton dsn afin d'utiliser le bon serveur. mais ton user, je doute qu'il soit différent...
 
Et les DSN, c'est d'un autre âge, à l'époque où MS-DOS était considéré comme un OS serveur robuste :o
 
Ca fait 30 ans qu'on n'utilise plus de DSN, ce qui rends les applications un peu plus faciles à déployer :p
http://members.tripod.com/mdameryk [...] essADO.htm
 
Par contre, ça ne te dispense pas malheureusement de remplir le TNSNAMES.ORA, mais ça c'est juste parceque Oracle c'est du résidu de sous-merde arboricole, qui estime que "si ça marche depuis l'invention de la roue, ben c'est ce qu'il y a de mieux".


Message édité par MagicBuzz le 19-12-2007 à 14:50:27
Reply

Marsh Posté le 19-12-2007 à 14:55:21    


j'utilise un user différent parce ce que je vais faire une boite de  dialogue( excel) pour me demander le pays sur lequel je veux effectuer la requète.
 

Reply

Marsh Posté le 19-12-2007 à 16:00:15    

Il n'empêche que ton souci ici vient du fait que tu utilises le même DSN, donc tu te connectes au même serveur.

Reply

Marsh Posté le 19-12-2007 à 16:06:22    

Comme je l'ai dit au début je ne connais rien en matière de BDD
 
DSN: je ne connais
 
 
Merci quand même d'avoir essayé de me dépanner
 
Bonne soirée

Reply

Marsh Posté le 19-12-2007 à 16:48:15    

"data source=MASOURCE"
 
DSN = Data Source Name. Ou si tu préfères, le truc qui s'appelle "source de données 32 bits" dans le panneau de config ou les outils d'admin de windows, selon ta version.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed