IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Ole ou ODBC ?


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 149
    Par défaut Ole ou ODBC ?
    Bonjour,

    Je viens de décider de changer de VBA à VB.NET. Bravo!!

    J'aimerais simplement savoir si c'est bien d'utiliser les objets Ole plutôt que ODBC (ou autres...) avec .NET (et une base Access). À ce que je lis, avec le Framework maintenant (pour moi... lol), il est plus efficace de travailler avec des objets qui executent des commandes (OleDbConnection, OleDbCommand, OleDbDataReader... ), au lieu des recordset tout simples qui INSERT, UPDATE, DELETE (db.execute...)...

    Aussi, j'aimerais savoir si je peux utiliser éventuellement les même méthodes pour me connecter à un BD Access ou une BD SqlServer.!?

    Merci à l'avance pour vos réponses, je pourais sauver un temps fou si je suis sur une mauvaise piste .

    Gorj.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    en vb.net on utilise pas de recordset
    d'une manière générale avant d'ajouter une référence com ou ocx il faut se poser des questions

    pour accéder à une base de données ca se passe dans system.data
    system.data.odbc pour utiliser une connexion odbc
    system.data.oledb pour access
    system.data.sqlclient pour sql server
    system.data.sqlce pour sql server ce

    ensuite tous les objets suivent la même logique, héritant des même classes
    system.data.sqlclient.sqlconnection et system.data.oledb.oledbconnection héritent de system.data.command.dbconnecetion par exemple
    dbcommand pour mettre la requete dedans (et dbparameters)
    dbdatareader pour lire les données

    il est donc possible en théorie de faire une classe d'encapsulation qui puisse fonctionner avec access ou sql server (si c'est bien ca la question)
    à la limite près qu'sql server et access n'ont pas la même norme de requete (enfin access n'a pas de norme)
    mais si tu débutes ca ne va pas forcément être aisé, il faut assimiler la poo avant de se lancer dans ce genre de chose

    NB : access est à éviter pour du multiclient
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 149
    Par défaut Super réponse, Merci! :)
    Au fait, j'utilise l'édition Standard 2003 présentement, ce qui ne me permet pas d'utiliser SqlServer Express pour mes études. Mais j'ai réussis à me connecté à la BD dans un Sub button_click.

    Je dois maintenant créer une fonction de Connection et de Déconnection dans un module que j'appellerai au besoin. Je crois que c'est comme ça qu'il faut faire.!? Et ce aussi, en autant que mon Objet "cnn" soit encore disponible dans mon Sub pour appeler des commandes.!?

    Si ma logique est bonne, je vais pouvoir cesser de me casser la tête avec des Inner joint et passer des procédures snapshot sur des tables (genre update client & adresse), tous en même temps.

    Ma prochaine interrogation sera certainement comment "barrer" des pointeurs quand ils sont en éditions.!?

    Encore merci de m'encourager, et je conscent qu'à plus de 5 utilisateurs, il vaut mieux pas utiliser Ms.Access comme dorsale

    Gorj.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    vb express est gratuit, la version 2003 de vb n'est pas un produit fini, je te conseille donc vb express 2008 ou 2010

    un inner join ne sert pas à se casser la tête mais à gagner en logique et en performance

    un cours sur vb.net :
    http://plasserre.developpez.com/cours/vb-net/
    parce que vu ce que tu nous écris si tu commences à coder tout de suite ça va être la catastrophe ^^
    c'est un peu long à lire, mais j'ai commencé par là et ça fait gagner du temps, car vba et vb.net n'ont rien en commun à part une poignée de mots clé tel "if"
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 149
    Par défaut Excellente réponse
    Salut toi

    Haa! Tu fais les grands sabots l'a! Mais tu sais bien que je connais un peu plus que VBA Pourquoi pas me parler des recherches que tu fais en ce moment ... !?

    Gorj

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ??
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2010
    Messages : 149
    Par défaut
    Merci pour VB Express, je vais aller voir ça... Est-ce qu'on peut utiliser SqlServer Studio management et tout?

    Voici, j'ai un problème avec ce bout de code... Tout se passe bien, j'ai pas d'erreurs, mais les données ne s'insèrent pas.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
            If valid = True Then
     
                Dim cn As OleDbConnection
     
                Dim icount As Integer
     
                Dim cmd As OleDbCommand
     
                Dim sql As String
     
                'Dim dr As OleDbDataReader ...........sert juste à lire
     
                Try
     
                    cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Documents and Settings\Administrator\Desktop\rubik.mdb")
     
                    cn.Open()
     
                    'Dim Con as = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Documents and Settings\Administrator\Desktop\rubik.accdb")
     
                    sql = "INSERT INTO client VALUES ('" & Pnoma & "', '" & noma & "', '" & civic & "', '" & rue & "', '" & appt & "', '" & prov & "', '" & pays & "')"
     
                    'SQL = New OleDbConnection(SQL)
     
                    cmd = New OleDbCommand(sql, cn)
     
                    icount = cmd.ExecuteNonQuery
     
                    'MessageBox.Show(icount)
     
                    'displays number of records inserted
     
                    MsgBox("Connection Open ! ")
     
                    cn.Close()
     
                Catch
     
                End Try
     
            End If
    Merci
    Gorj

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    sql server n'a rien à voir avec vb express, c'est un produit à part
    vb express permet de faire la meme chose que visual studio payant, seul l'environnement change (moins d'outils, moins d'assistants)
    sql server ou sql server express (gratuit avec quelques limitations) sont utilisables avec vb express

    pour ton insert sur ta base access, on peut se demander si réellement tu n'as pas d'erreur, car il n'y a rien dans le catch ...
    le messagebox s'affiche-t-il bien ?

    tu peux aussi regarder le using/end using pour les objets disposables
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Question de débutant sur ODBC et OLE DB
    Par toisig dans le forum Débuter
    Réponses: 2
    Dernier message: 23/11/2006, 19h34
  2. Réponses: 1
    Dernier message: 26/10/2006, 17h03
  3. Microsoft OLE DB Provider for ODBC Drivers error
    Par tribaleur dans le forum ASP
    Réponses: 2
    Dernier message: 31/05/2006, 09h52
  4. Réponses: 3
    Dernier message: 12/10/2004, 23h45
  5. Difference entre OLE DB et ODBC
    Par WOLO Laurent dans le forum MFC
    Réponses: 6
    Dernier message: 21/07/2003, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo