Visual Basic 2008 ODBC vers oracle ! [Résolu]

Messages postés
109
Date d'inscription
samedi 18 août 2007
Statut
Membre
Dernière intervention
16 juin 2011
- - Dernière réponse : cs_Ayr
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
- 20 sept. 2009 à 15:12
Bonjour, après des recherche monstrueuse sur deux jour, je reviens à la charge avec mes questions et mes problèmes

mon problème est simple, je ne trouve AUCUN projet qui marche, et qui utilise ODBC

la version de oracle que j'utilise est la 10g Express Édition 64bits

j'ai déjà créer mes différentes bases & table du coté d'oracle, et effectuer ma connexion ODBC avec le driver, ce qui est déjà bien, maintenant je cherche un bout de code qui MARCHE sans 200 références à ajouté pour effectuer une connexion vers oracle 10g Express 64 bits

je dois développer pour mon entreprise un client VB de gestion de stock pour multiple entrepot / client / fournisseur, et comme il existe déjà une interface web mise en place, je dois utiliser ODBC pour faire ma connexion, si quelqu'un sait comment faire je le remercie d'avance, à bientôt.
Afficher la suite 

13 réponses

Meilleure réponse
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
3
Merci
Salut,

J'ai pu tester la connexion à une base de données Oracle
avec vb2008 via ODBC et... hélas... ça a marché !

Les conditions de test:[list]
- Client Oracle installé et configuré (voir fichier tnsnames.ora)
/list[list]
- Driver : "Microsoft ODBC for Oracle"
Attention au 'for' car j'ai d'abord écris machinalement 'pour'
et bien sur ça ne marchait pas... donc à vérifier sur ta machine.

Je n'ai pas réussi avec le driver ODBC fourni par Oracle.
Je testerai à nouveau quand j'aurai un peu de temps.
/list

En supposant que le nom du serveur Oracle soit ORACLESERVER,
que le nom d'utilisateur soit enzo
et que le mot de passe soit 68290,

voilà le code qui à marché pour moi:

Dim OracleODBCConnection As New System.Data.Odbc.OdbcConnection("DRIVER=Microsoft ODBC for Oracle;SERVER=ORACLESERVER;UID=enzo;PWD=68290")
Try
    OracleODBCConnection.Open()
    MsgBox("Connexion ok", MsgBoxStyle.Information)
  Catch ex As Exception
    MsgBox("Connexion échec", MsgBoxStyle.Critical)
End Try
OracleODBCConnection.Close()


J'espère que ça marchera aussi pour toi.

A+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 140 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Ayr
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
0
Merci
Salut,

J'ai développé une application pour se connecter et interagir avec une
base de données Oracle. Je n'utilise pas ODBC mais ce n'est pas compliqué
du tout, du moment qu'on à installé et configuré correctement le client Oracle
sur le poste qui recevra l'application. Ca à été pour moi le plus pénible.
A noter que dans mon cas on se connecte via le Net et au travers d'un VPN.
Mais tout celà est transparent pour l'application.

Pour les références à utiliser :
[list]
[*] Avec l'installation du client, Oracle fournit
un "Namespace" avec les classes nécessaires et écrites dans l'esprit .Net.

[*] Autre possibilité, Microsoft fournit gratuitement un composant complémentaire au
Framework.Net, qui ajoute le "Namespace" System.Data.OracleClient et qui permet
exactement le même développement. Téléchargeable ici -> Fournisseur managé .NET pour Oracle
/list
Dans les deux cas il faut avoir installé le client Oracle sur le(s) poste(s)
qui recevront l'application que tu vas développer.

Pour te donner une idée, je code la connection et les différents échanges
avec la base de données de la même façon avec SQLServer et le serveur Oracle.
Seules diffèrents quasiment, la chaine de connection et le "Namespace" utilisé.

-------------------------------------

Quoi qu'il en soit, il y à juste un petit problème...

J'ai ce code au boulot et je n'y suis pas en ce moment.
Je n'y retourne que lundi.

J'espère que tu arrivera à résoudre ton problème d'ici là mais
dans le cas contraire, lundi soir je pourrai t'aider un peu plus.

Bon courage
Commenter la réponse de cs_Ayr
Messages postés
109
Date d'inscription
samedi 18 août 2007
Statut
Membre
Dernière intervention
16 juin 2011
0
Merci
c'est très sympa de ta part de porté attention à ce post, mon soucis n'est pas la simplicité de la chose, mais le fait que je suis OBLIGER de passer par odbc

je m'explique :

mon directeur de groupe m'a très clairement fait comprendre que je devais utiliser la liaison fournit par ODBC et déjà en place parce qu'il ne veut pas lui se crever à modifier le pare-feu qui n'autorise que ODBC à rentrer sur le serveur

j'ai un peu de mal à le supporté car en ce moment il bosse de moins en moins, et on à de plus en plus de charge de travail, malgré ça monsieur à décider qu'il ne toucherais pas le serveur, et que s'étais donc à moi d'en chier pour faire en sorte que ma liaison depuis ODBC fonctionne !

...

mais, ta solution fonctionne, j'en est déja entendu parlé, déja d'une, et déja vu fonctionner la chose, de deux ...

si vraiment je pouvais faire comme ça, sa me faciliterais la vie !
Commenter la réponse de enzo68290
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
0
Merci
Je compatie et solidaire ! Ce qui ne t'avance pas des masses je l'avoue...

Si je peux, je jeterai un oeil au boulot.

Question bête : Sans compter vb.net et ton application, ta connexion ODBC est-elle déjà crée et peux-tu te connecter ?
Commenter la réponse de cs_Ayr
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
0
Merci
Tiens, peut être une petite piste pour t'aider.
Un lien vers des infos sur les chaines de connexions au bases de données.

Ici la chaine de connexion vers Oracle via ODBC
Commenter la réponse de cs_Ayr
Messages postés
109
Date d'inscription
samedi 18 août 2007
Statut
Membre
Dernière intervention
16 juin 2011
0
Merci
en fait, il y à déja une application PHP qui utilise cette connexion ODBC, avec une gestion des stocks qui tourne dessus, moi je dois permettre de faire la gestion des utilisateurs qui ont le droit de géré les produits, le tout en VB
Commenter la réponse de enzo68290
Messages postés
109
Date d'inscription
samedi 18 août 2007
Statut
Membre
Dernière intervention
16 juin 2011
0
Merci
Vraiment Ayr, je te remercie pour ton dévouement et ton implication par rapport à mon problème, mais tu m'a expliquer clairement ou je me trompe peut être, je vais testé dans les plus bref délais.

pour te dire, de par ma boite, j'ai été amener à contacter oracle, et Microsoft pour leur demander des explications, et de la part d'oracle j'ai entendu : " ils n'utilisent pas les standard ODBC correctement ", et Microsoft qui réussissent à te sortir : " avec Sql Serveur 2008 ça fonctionne très bien, c'est la faute à oracle qui ne fournissent pas de produit compatible ! "

alors vraiment, merci !

si tu veux m'envoyé un message perso pour garder contacte, pour de futur développement, ça m'intéresse beaucoup, à savoir que je suis près à t'aider lorsque toi aussi tu rencontrera d'autre problème de développement, même si je suis encore assez débutant
Commenter la réponse de enzo68290
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
0
Merci
Content d'avoir pu être utile
Commenter la réponse de cs_Ayr
Messages postés
109
Date d'inscription
samedi 18 août 2007
Statut
Membre
Dernière intervention
16 juin 2011
0
Merci
Rebonjour Ayr, je revien à la charge parce que je ne me suis occupé de cette affaire que maintenant, ton code est géniale

une question me taraude, je n'est pas réussis à executer une requête SQL, sait tu comment avec ce même code on peut faire ? merci d'avance a +
Commenter la réponse de enzo68290
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
0
Merci
Content que tu ais pu te débloquer

Pour ce qui est de lire les données, après avoir ouvert ta connexion, par exemple tu peux faire :
Dim OracleODBCCommand As New System.Data.Odbc.OdbcCommand("Ta requete SQL")
Dim OracleODBCReader  As System.Data.Odbc.OdbcDataReader = OracleODBCCommand.ExecuteReader()

Pour des requêtes de type selection : "SELECT blablabla..."

ou
Dim OracleODBCCommand As New System.Data.Odbc.OdbcCommand("Ta requete SQL")
OracleODBCCommand.ExecuteNonQuery()

Pour des requêtes de type action : "INSERT...", "UPDATE...", "DELETE..."

Pour la lecture proprement dite, avec une requête select, tu doit parcourir ton DataReader tu doit utiliser la méthode Read qui renvois true si elle à récupéré une ligne ou False s'il n'y en a plus :

OracleODBCReader.Read() '-- A répéter autant de fois qu'il y à de lignes

par exemple :
While OracleODBCReader.Read()
  '-- Traitements...
End While


Pour chaque Read tu peux récupérer les données avec :
OracleODBCReader.Item("Nom du Champ")


Pour terminer proprement :
OracleODBCReader.Close()
OracleODBCReader = Nothing

OracleODBCCommand.Dispose()


Ce ne sont que quelques exemples, il y a d'autres possibilités en fonction de tes besoins, mais ça permet déjà beaucoup de choses. Tout dépend des requêtes SQL que tu vas écrire en fait.

Renseigne toi sur les objets suivants du namespace System.Data.Odbc :
OdbcCommand
OdbcDataReader
OdbcDataAdapter
et DataSet du namespace System.Data

Bonne continuation
Commenter la réponse de cs_Ayr
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
0
Merci
Heu... désolé, petite erreur dans l'initialisation de l'objet Command...
C'est
Dim OracleODBCCommand As New System.Data.Odbc.OdbcCommand("Ta requete SQL", OracleODBCConnexion)

Avec OracleODBCConnexion, la connexion que tu as précédemment initialisée et ouverte.
Commenter la réponse de cs_Ayr
Messages postés
109
Date d'inscription
samedi 18 août 2007
Statut
Membre
Dernière intervention
16 juin 2011
0
Merci
merci, niquel ^^, en fait j'ai trouvé entre temps et au final j'ai finis par trouver, mais merci ayr :)
Commenter la réponse de enzo68290
Messages postés
221
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2009
0
Merci
J'adore quand un plan se déroule sans accrocs

Content de voir que Oracle t'est enfin propice...

(hum... désolé...)
Commenter la réponse de cs_Ayr