Connexion à une base Oracle

Connexion à une base Oracle - VB/VBA/VBS - Programmation

Marsh Posté le 15-12-2009 à 12:12:55    

Bonjour,
 
Je cherche à exécuter un petit programme me permettant de me connecter à une base Oracle.
Cependant, des les premières lignes, le programme refuse de s'exécuter (mais il n'y à pas d'erreur de compilation).
 
Voici mon code à l'heure actuelle :
 
http://pastebin.com/m3f506744
 
"Lors de l'exécution du programme, voici le message d'erreur qui s'affiche :
 
Une exception non gérée du type 'System.TypeLoadException' s'est produite dans Module inconnu.
 
Informations supplémentaires : Impossible de charger le type OCI_Connection à partir de l'assembly Syslog3, Version=1.0.3636.21851, Culture=neutral, PublicKeyToken=null."
 
 
 
Malgré mes recherches je n'arrive pas à resoudre ce problème...
Quelqu'un aurait-il une idée?
 
 

Reply

Marsh Posté le 15-12-2009 à 12:12:55   

Reply

Marsh Posté le 15-12-2009 à 12:31:31    

Vous pourriez poster votre code ici, pour éviter les hasards du clic vers une adresse inconnue.
Bon, j'ai été intrépide, j'ai pris le risque, et je vois que votre code est assez court. Je le poste ici, pour ceux qui sont interessés :

// Il s'agit du fichier projet principal pour le projet d'application VC++
// généré en utilisant un Assistant Application.
 
#include "stdafx.h"
#include "ocilib.h"
#using <mscorlib.dll>
#include <tchar.h>
 
 
#pragma comment(lib, "ociliba.lib" )
#pragma comment(lib, "ocilibm.lib" )
#pragma comment(lib, "ocilibw.lib" )
 
using namespace System;
 
int main(void)
{
        OCI_Connection *cn;
 
        if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
                return EXIT_FAILURE;
 
        cn = OCI_ConnectionCreate("db", "usr", "lwd", OCI_SESSION_DEFAULT);
        if (cn != NULL)
        {
        printf(OCI_GetVersionServer(cn));
       
        printf("Server major version : %i\n", OCI_GetServerMajorVersion(cn));
        printf("Server minor version : %i\n", OCI_GetServerMinorVersion(cn));
        printf("Server revision version : %i\n", OCI_GetServerRevisionVersion(cn));
       
        printf("Connection version : %i\n", OCI_GetVersionConnection(cn));
       
        OCI_ConnectionFree(cn);
        }
        OCI_Cleanup();
        return EXIT_SUCCESS;
}

Le problème vient surement de votre environnement. Est-ce que Oracle est bien installé ? Est-ce que vous pouvez faire :

sqlplus usr/lwd@db


Est-ce que vous pouvez faire :

tnsping db

Est-ce que db est bien défini dans tnsnames.ora ? Est-ce que usr est bien un compte oracle ?

Reply

Marsh Posté le 15-12-2009 à 14:08:54    

Désolé d'avoir posté le code ainsi, c'était surtout pour ne pas écrire trop de chose sur le forum justement.
Le tnsping fonctionne bien, lorsque j'essaye de me connecter grâce à l'ancien programme je n'est pas de problème.
De même pour sqlplus usr/lwd@db.
J'ai d'ailleurs fait une faute de frappe au niveau de :
 
cn = OCI_ConnectionCreate("db", "usr", "lwd", OCI_SESSION_DEFAULT);  
 
Mais celle-ci a été corrigée.

Reply

Marsh Posté le 16-12-2009 à 09:45:59    

j'ai testé mon script sous une autre version de Microsoft visual studio et celui-ci fonctionne...
Le souci c'est que je ne peut pas me servir de cette version.
Mon code ne fonctionne ni sur Visual Studio 2003, ni sur Visual Studio 2008.
 
En revanche, il fonctionne sur Visual Studio 2005.
 
Donc là, l'erreur me dépasse xD

Reply

Sujets relatifs:

Leave a Replay

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