Driver ODBC / CLient/Acces V3R10

BoTTom |    Changer de couleur
 
 Présentation du driver ODBC V3R10 de Client/Access.
 
  ODBC est une norme (Microsoft) offrant un accès transparent à des bases de
   données (éloignées ou non).
 
  Une application WINDOWS compatible ODBC, peut ainsi accéder à une base de
   données en ne connaissant que son nom logique.
 
  La couche ODBC, va activer le driver adéquat (il y a un driver par base)
   qui lui-même va faire le lien avec la base réelle.
 
 
 Dans le cas de l'AS/400, le driver livré avec Client/Access, va établir
  un dialogue APPC avec l'AS en s'appuyant sur le routeur.
 
 Dernier point (Important) toutes les requêtes transmises au driver sont à
  la syntaxe SQL, et les requêtes sont exécutées sur le serveur. (ici l'AS)
 
 Vous allez voir Une présentation MICRO de ce driver et de son utilisation 
 
  <F3 = sortir de ce cours>    <ENTREE = enchaîner la présentation micro>


|    Changer de couleur
 
Pour accéder aux Bases ODBC, VISUAL BASIC et VBA
 (Visual Basic for Application qui remplace les macros EXCEL4 pour EXCEL5),
 possèdent des codes spécifiques :
 
VBA : SQLOpen      établit une connexion avec une base ODBC
      SQLBind      détermine l'endroit où placer le résultat d'une requête
      SQLClose     rompt une connexion
      SQLError     renvoie le détail d'une erreur
      SQLExecQuery exécute une requête passée en argument
      SQLGetShema  renvoie des informations sur la base.
      SQLRequest   établit une connexion ET exécute une requête
      SQLRetrieve  extrait les résultats d'une requête
      SQLRetrieveToFile extrait les résultats et les place dans un fichier
 
 
 
Quand à Visual Basic, il s'agit d'un véritable langage de programmation
 
En voici les principales caractéristiques (concernant l'accès aux Bases)
 
 


|    Changer de couleur
 Dim Db As Database        '(définition d'une base)
 Dim Sn As Snapshot        '(définition d'un curseur SQL)
 Dim requete               '(variable contenant la requête)
 
 
 Set Db = OpenDatabase("nom_de_la_base", False,         False,      "ODBC;")
        '                               (mode exclusif) (lecture seule)
        'si nom_de_la_base n'est pas renseigné, ODBC vous affiche une liste
 
 requete = "SELECT CLIENTS.DEPCLI, SUM(ENTFAC.MNTFAC - ENTFAC.MNTPAI)"
 requete = requete & "FROM CLIENTS, ENTFAC "
 requete = requete & "WHERE CLIENTS.CODCLI = ENTFAC.CODCLI "
 requete = requete & "GROUP BY DEPCLI "
 requete = requete & "HAVING SUM(ENTFAC.MNTFAC - ENTFAC.MNTPAI) > 0"
 
    Set Sn = Db.CreateSnapshot(requete)
 
    Sn.MoveFirst
    While Sn.EOF = False
       'traitement  de Sn(0)= colonne1, Sn(1) = colonne 2 , etc...
    Sn.MoveNext
    Wend





©AF400