Compatibilités & accessibilités

Un accès [alter]natif s’appuie sur les accès bas niveau fournis par l’éditeur du SGBD auquel on tente d’accéder (pas de couches intermédiaires utilisées).

Les accès bas niveau, plus communément appelés API, sont le plus souvent fournis sous forme d’un jeu de fichiers écrits en C (par exemple OCI, Oracle Call Interface pour Oracle, DBLIB pour SQL Server ou encore Jet pour Access).

L'ensemble des accès [alter]natifs sont disonibles en téléchargement ici.

+ d'infos

dataXmaster est une solution conçue pour extraire, synchroniser et transformer vos données sans développement.

One-serv est un ensemble de webServices pour developpeurs et webmasters.

Cette chaine a été créer afin d’illustrer par des vidéos les différents accès que nous mettons à disposition sur ce site.

SQLManagerX Pro est là pour offrir aux professionnels un ensemble prestations (développements, formations, audits...)

Les accès [alter]natifs sont le lien entre les accès de bas niveau de l’éditeur SGBD et votre application WinDev.

Si vous utilisez SQLManagerX et/ou les accès [alter]natifs, vous pouvez faire partie de nos références !

Vous êtes convaincu des bienfaits de SQLManagerX pour votre projet ? Il ne vous reste plus qu'à l'utiliser.

Vous souhaitez un peu d'aide pour mieux démarrer avec SQLManagerX ? Guides et exemples sont là pour vous.

Pour nous aider a maintenir toute la partie gratuite de SQLManagerX qui reste l'occupation principale de ses membres.

SQLManagerX en Bref

Ce site est un espace non officiel consacré au développement SQL sous WinDev.
Notre solution, SQLManagerX, est entièrement gratuite et accessible aux développeurs internautes.

Vous pouvez télécharger SQLManagerX ici

Compatibilités & accessibilités

En résumé

Un accès [alter]natif s’appuie sur les accès bas niveau fournis par l’éditeur du SGBD auquel on tente d’accéder (pas de couches intermédiaires utilisées).

Les accès bas niveau, plus communément appelés API, sont le plus souvent fournis sous forme d’un jeu de fichiers écrits en C (par exemple OCI, Oracle Call Interface pour Oracle, DBLIB pour SQL Server ou encore Jet pour Access).

La DLL

Un lien entre ces API décrites ci-dessus et notre application WinDev est nécessaire. Pour cela, une DLL (Dynamic Link Library ou Bibliothèque de Liens Dynamique en français) est l’élément le plus simple à mettre en œuvre. On se base donc sur les API pour créer une DLL à l’aide d’un logiciel spécifique (entre autre : Dev-Cpp, Visual Studio, Borland C++) tout en répondant à nos besoins fonctionnels (se connecter à la base, effectuer des ordres SQL, etc.).

L’utilisation d’une DLL présente un double intérêt :

  • Une DLL est plus facilement exploitable par WinDev (ou toute autre application Windows)
  • Une DLL est plus facilement intégrable dans un projet WinDev

La classe

Pour terminer une classe WinDev encapsule les différents appels à la DLL pour faciliter le développement.

Le tout permet :

  • une faible consommation de ressource mémoire et CPU avec une seule DLL chargée
  • une intégration dans votre projet facilité
  • un mode de programmation facile à maîtriser

Référence développeur : Accès Natifs

Vous trouverez ici un guide en PDF sur les accès natifs : Référence développeur : Accès natifs.


Les différents accès natifs sont fournis avec une dll et une classe Windev 7.5. Les 2 superclasses SQLManagerX et c_GestionSQL s'appuyant sur les accès natifs nécessitent :

  • une homogénéité minimum dans les méthodes (noms similaires)
  • une homogénéité minimum dans les comportements des méthodes (gestion des codes retour)
  • un ensemble minimum de méthodes

Cette page recense le minimum qu'un accès natif candidat doit posséder pour être compatible avec SQLManagerX et c_GestionSQL et faciliter ainsi son intégration dans l'ensemble déjà existant.

La compatibilité avec la classe de gestion des ordres SQL (c_GestionSQL)

Au niveau des comportements, l'accès natif candidat doit gérer :

  • La connexion et la déconnexion à une base de données
  • La gestion de 5 requêtes simultanément (exécution + récupération des données)
  • La récupération des erreurs en provenance de la base
  • Le blocage des lignes
  • Gestion des champs long de type chaine de caractères

Les méthodes suivantes doivent exister pour rendre l'accès natif candidat compatible avec c_GestionSQL :

  • Connexion :
  • mySQLConnecte ()
  • mySQLDeconnecte()
  • mySQLTransaction()
  • SetAutoCommit()
  • SetNbEssais()
  • Curseur :
  • mySQLBloque()
  • mySQLExec()
  • mySQLFerme()
  • mySQLFetch()
  • mySQLTable()
  • mySQLGetNumRows()
  • mySQLRequestInUse()
  • Champs :
  • mySQLCol()
  • mySQLColLong()
  • mySQLLitCol()
  • mySQLLitColLong()
  • mySQLLitColParNom()
  • mySQLLitColParNomLong()
  • mySQLLitMemo()
  • mySQLQuoteString()
  • mySQLEscapeString()
  • mySQLGetFieldName()
  • mySQLGetFieldType()
  • mySQLGetFieldLength()
  • mySQLGetNumFields()
  • mySQLLitLigne()
  • Gestion des erreurs :
  • mySQLMsgBox()
  • mySQLGetErrorMessage()
  • mySQLGetNumError()
  • Divers :
  • SetSGBD()
  • ToName(requestNumber)
  • mySQLDateFormat()
  • AllTests()

La compatibilité avec SQLManagerX

En plus de ceux imposés par c_GestionSQL, l'accès natif candidat doit gérer les comportements suivants :

  • La gestion des ordres LIMIT n, et LIMT n,m dans un ordre SELECT
  • La gestion des ordres mySQLPremier()
  • La gestion des ordres mySQLSuivant()
  • La gestion des ordres mySQLDernier()
  • La gestion des ordres mySQLPrécédent()
  • La mise à disposition de SQLManagerX des méta-données de la base (tables, colonnes, clés primaires)
  • mySQLDécritTable()

Rappel important

Les accès natifs fournis se placent sous le coup de la LICENCE WD-LIBRE disponible sur le site de l'association.

Pour rappel l'article 7 stipule : "L'Auteur fournit le Code Source « tel quel », sans garantie de quelque sorte que ce soit. L'Auteur ne pourra en aucun cas être tenu pour responsable des dommages directs, indirects, secondaires ou accessoires (perte de données, pertes financières dues à un manque à gagner, interruption d'activité, etc.) occasionnés par l'utilisation de son Code Source."


SQLManagerX - HF

La classe SQLManagerX utilise les accès natifs et donne au développeur WinDev des méthodes se rapprochant des fonctions HF disponible dans le W-Langage. Cette rubrique reprend les fonctions HF (liste que nous espérons quasi-exhaustive).

Affectations

Fonction HF Utilité (extrait de l'aide en ligne de WinDev 7.5) Equivalent SQLManagerX
FichierVersEcran SQLTableVersEcran
EcranVersFichier SQLEcranVersTable

Ordres de parcours, modifications

Fonction HF Utilité (extrait de l'aide en ligne de WinDev 7.5) Equivalent SQLManagerX
HAjoute Ajoute l'enregistrement présent en mémoire dans le fichier de données. SQLInsert
HFiltre Définit et active un filtre sur un fichier, une vue ou une requête. SQLFiltre
HLitDernier Positionne sur le dernier enregistrement d'un fichier, lit l'enregistrement et met à jour les variables Hyper File. SQLDernier
HLitPrécédent Positionne sur l'enregistrement précédent d'un fichier, lit l'enregistrement et met à jour les variables Hyper File. SQLPrécédent
HLitPremier Positionne sur le premier enregistrement d'un fichier, lit l'enregistrement et met à jour les variables Hyper File. SQLPremier
HLitSuivant Positionne sur l'enregistrement suivant d'un fichier, lit l'enregistrement et met à jour les variables Hyper File. SQLSuivant
HModifie Modifie l'enregistrement spécifié ou l'enregistrement présent en mémoire dans le fichier de données (la requête ou la vue). SQLUpdate
HRAZ Initialise une ou toutes les variables des rubriques d'un fichier avec leurs valeurs par défaut. Les valeurs par défaut sont définies lors de la description du fichier sous l'éditeur d'analyses. Remarque : HRAZ ne modifie pas l'enregistrement dans le fichier mais uniquement les données en mémoire. SQLRAZ
HRecherche Positionne sur le premier enregistrement du fichier dont la valeur d'une rubrique spécifique est supérieure ou égale à une valeur recherchée (recherche générique par défaut). SQLRecherche
HRetourPosition Restaure le contexte précédemment sauvegardé d'un fichier (fonction HSauvePosition) : enregistrement en cours, filtre, pointeurs de lecture. SQLRetourPosition : revient uniquement sur l'enregistrement sauvegardé
HSauvePosition Mémorise le contexte en cours d'un fichier : enregistrement en cours, filtre, pointeurs de lecture. SQLSauvePosition : sauvegarde uniquement l'enregistrement en cours
HSupprime Supprime un enregistrement d'un fichier, d'une requête ou d'une vue. L'enregistrement est supprimé logiquement et physiquement. Il ne pourra pas être restauré. SQLDelete

Gestion des erreurs

Fonction HF Utilité (extrait de l'aide en ligne de WinDev 7.5) Equivalent SQLManagerX
HErreur Renvoie le numéro de la dernière erreur déclenchée par le moteur Hyper File. ErreurNum
HErreurInfo Renvoie une information détaillée sur la dernière erreur déclenchée par le moteur Hyper File. ErreurSQL

Gestion des vues

Merci à Nicolas Broudoux pour cette fonctionnalité très utile. Contrairement à la fonctionnalité HF qui crée un objet vue, la gestion des vues avec SQLMangerX correspond à créer un sous-ensemble de l'objet associé. Lorsque des tables lourdes sont à gérer (plus de 20 colonnes), SQLCreeVue permet de restreindre le nombre de colonnes sélectionnées et réduit donc les appels à la base.

Fonction HF Utilité (extrait de l'aide en ligne de WinDev 7.5) Equivalent SQLManagerX
HCréeVue Crée une vue Hyper File au format WinDev 7.5. SQLCreeVue
HDetruitVue Détruit une vue précédemment créée. Cette destruction consiste à détruire tout ce qui concerne la vue, y compris sa description. Lors de cette destruction, les enregistrements bloqués par la vue (s'ils existent) sont débloqués. SQLDetruitVue

Gestion des filtres

Fonction HF Utilité (extrait de l'aide en ligne de WinDev 7.5) Equivalent SQLManagerX
HActiveFiltre Active le filtre précédemment créé pour le fichier, la vue ou la requête spécifiée. SQLActiveFiltre
HDésactiveFiltre Désactive temporairement un filtre sur un fichier, une vue ou une requête. SQLDesactiveFiltre

Autres fonctions

Fonction HF Utilité (extrait de l'aide en ligne de WinDev 7.5) Equivalent SQLManagerX
HAlias Crée un alias logique d'un fichier ou d'une requête, ou annule tous les alias existants. Nouvelle instance de la classe fichier
HCopieEnreg Copie le contenu de l'enregistrement en cours chargé en mémoire dans l'enregistrement en cours d'un autre fichier. SQLDuplicate + SQLInsert
HListeClé Renvoie la liste des clés d'un fichier, d'une requête ou d'une vue. ShemaIndex Renvoie la chaine de création des index

Fonctions sans équivalent SQLManagerX

Fonction HF Utilité (extrait de l'aide en ligne de WinDev 7.5) Equivalent SQLManagerX
HannuleAlias Annule un alias précédemment déclaré avec la fonction HAlias. Création d'une nouvelle instance
HAnnuleRecherche Annule le critère de recherche en cours. Le parcours du fichier peut alors se poursuivre à partir de l'enregistrement en cours sans utiliser de critère de recherche. Les enregistrements parcourus ne correspondront pas nécessairement à la condition de recherche. Pas d'utilité
HAvance Avance de plusieurs enregistrements dans le fichier, à partir de la position en cours, selon une rubrique spécifiée. Pas d'utilité
HBloqueFichier Bloque un fichier et restreint l'accès à ce fichier pour toutes les autres applications. Le fichier pourra ensuite être débloqué grâce à la fonction HDébloqueFichier. Lock table, si supporté par l'accès
HBloqueNumEnr Bloque un enregistrement et restreint l'accès à cet enregistrement pour toutes les autres applications. L'enregistrement pourra ensuite être débloqué grâce à la fonction HDébloqueNumEnr.
HCréation Crée à vide un fichier de données (fichier d'extension .FIC) avec le fichier d'index et le fichier mémo si nécessaires. Pas d'utilité
HCréationSiInexistant Si le fichier n'existe pas, crée à vide un fichier de données. Pas d'utilité
HDébloqueFichier Débloque les enregistrement d'un fichier.
HDébloqueNumEnr Débloque un enregistrement précédemment bloqué.
HDécritFichier Décrit un fichier de données temporaire. GetSchema()
HDécritLiaison Décrit une liaison temporaire entre deux fichiers.
HDécritRubrique Décrit une rubrique d'un fichier de données temporaire.
HDernier Positionne sur le dernier enregistrement d'un fichier. L'enregistrement n'est pas lu. L'enregistrement en cours est modifié.
HEcrit Écrit un enregistrement dans le fichier de données sans mettre à jour les index correspondants à toutes les clés utilisées dans le fichier.
HErreurBlocage Permet de tester si une erreur de blocage est survenue.
HErreurDoublon Permet de tester si une erreur de doublons est survenue.
HErreurIntégrité Permet de tester si une erreur d'intégrité est survenue.
HErreurMotDePasse Après l'exécution d'une fonction de lecture ou d'écriture dans un fichier, permet de savoir si une erreur due à un mot de passe erroné a été rencontrée sur ce fichier.
HExecuteVue Exécute une vue créée auparavant.
HFinInterditModif Débloque un fichier qui a été bloqué par le même programme avec la fonction HInterditModif.
HImporteTexte Importe un fichier Texte dans un fichier au format Hyper File 7.
HInterditModif Interdit toute modification sur un fichier pour tous les programmes, y compris le programme qui a demandé l'interdiction. Les enregistrements sont uniquement accessibles en lecture.
HLibere Transforme les enregistrements rayés (HRaye) d'un fichier en enregistrements supprimés.
HListeFichier Renvoie la liste des fichiers. ListeTable par l'accès directement
HListeLiaison Renvoie la liste des liaisons de type Merise présente dans l'analyse en cours ou dans une analyse spécifique.
HListeRubrique Renvoie la liste des rubriques d'un fichier, d'une requête ou d'une vue. GetSchema()
HListeTrigger Renvoie la liste des triggers appliqués sur un ou plusieurs fichiers.
HLit Lit un enregistrement dans un fichier en fonction d'un numéro d'enregistrement donné. Pas d'utilité
HLitRecherche Positionne sur le premier enregistrement du fichier dont la valeur d'une rubrique spécifique est supérieure ou égale à une valeur recherchée (recherche générique). L'enregistrement est lu et les variables Hyper File correspondantes sont mises à jour.
HLitRechercheDernier Positionne sur le dernier enregistrement du fichier dont la valeur d'une rubrique spécifique est inférieure ou égale à une valeur recherchée. L'enregistrement est lu et les variables Hyper File correspondantes sont mises à jour.
HLitRecherchePremier Positionne sur le premier enregistrement du fichier dont la valeur d'une rubrique spécifique est supérieure ou égale à une valeur recherchée. L'enregistrement est lu et les variables Hyper File correspondantes sont mises à jour.
HPositionne Positionne sur un enregistrement à partir de la position approximative d'une de ses rubriques. L'enregistrement est lu.
HPrécédent Positionne sur l'enregistrement précédent du fichier. L'enregistrement n'est pas lu. L'enregistrement en cours est modifié.
HPremier Positionne sur le premier enregistrement d'un fichier. L'enregistrement n'est pas lu. L'enregistrement en cours est modifié.
HRaye Raye un enregistrement d'un fichier. L'enregistrement est supprimé logiquement et pourra éventuellement être récupéré.
HRecule Recule de plusieurs enregistrements dans le fichier, à partir de la position en cours, selon une rubrique spécifiée. L'enregistrement destination est lu et chargé en mémoire : les variables Hyper File sont mises à jour (par exemple Client.Nom, c'est-à-dire la rubrique Nom du fichier Client).
HRécupèreRubrique Renvoie le contenu d'une rubrique de l'enregistrement en cours.
HSécurité Active ou désactive le mécanisme de sécurité automatique sur un ou plusieurs fichiers.
HSuivant Positionne sur l'enregistrement suivant du fichier. L'enregistrement n'est pas lu. L'enregistrement en cours est modifié.
HTransactionAnnule Annule la transaction qui a échoué.
HTransactionDébut Démarre une transaction.
HTransactionFin Valide la transaction en cours.
HTriVue Trie une vue, en créant un index sur une rubrique de la vue.
HVersion Permet de savoir si le contenu d'un fichier a été modifié, si le contenu d'un fichier utilisé par une requête a été modifié, si le contenu d'un fichier utilisé par une vue Hyper File a été modifié.
HVersRubrique Affecte la valeur indiquée à une rubrique de l'enregistrement en cours. Remarque : l'utilisation de cette fonction est très rare.
HVueVersFichier Enregistre les modifications réalisées dans une vue (grâce aux fonctions HModifie, HSupprime ou HRaye) dans le fichier correspondant.

Fonctions dites « sans utilité avec SQLManagerX »

Fonction HF Utilité (extrait de l'aide en ligne de WinDev 7.5) Equivalent SQLManagerX
HAnnuleDéclaration Supprime une déclaration précédemment faite avec HDéclare, HDéclareExterne ou HDécritFichier. Après cette opération, le fichier n'est plus connu par le moteur Hyper File. Pas d'utilité
HAssigne Uniquement pour compatibilité WD55. Pas d'utilité
HChangeCle Change la rubrique de parcours. L'enregistrement en cours reste inchangé. Pas d'utilité
HDébutVerrou Uniquement pour compatibilité WD55. Pas d'utilité
HDécritClé Uniquement pour compatibilité WD55. Pas d'utilité
HDécritTrigger Ajoute ou modifie un trigger sur un fichier Hyper File. Pas d'utilité
HDéjàBloque Uniquement pour compatibilité WD55. Pas d'utilité
HDoublon Uniquement pour compatibilité WD55. Pas d'utilité
HErreurEtatModification Renvoie l'état d'un enregistrement lors d'un conflit de modification. Pas d'utilité
HFerme Ferme soit un fichier, soit tous les fichiers ouverts. Pas d'utilité (le moteur SGBD le fait)
HFermeAnalyse Ferme l'analyse en cours. Pas d'utilité
HFinVerrou Uniquement pour compatibilité WD55. Pas d'utilité
HGèreAccèsDistant Pas d'utilité
HGèreDoublonNon Pas d'utilité
HGèreDoublonOui Pas d'utilité
HGèreIntégritéNon Pas d'utilité
HGereIntegriteOui Pas d'utilité
HGèreIntégritéOui Pas d'utilité
HGèreJnlNon Pas d'utilité
HGèreJnlOui Pas d'utilité
HGèreMémoNon Pas d'utilité
HGèreMémoOui Pas d'utilité
HGèreRéplication Pas d'utilité
HGèreRepNon Pas d'utilité
HGèreRepOui Pas d'utilité
HGèreTrigger Pas d'utilité
HGèreTrsNon Pas d'utilité
HGèreTrsOui Pas d'utilité
HInfoGéné Uniquement pour compatibilité WD55. Pas d'utilité
HInfoRubrique Uniquement pour compatibilité WD55. Pas d'utilité
HJournalInfo Pas d'utilité
HJournalRecrée Pas d'utilité
HJournalRedémarre Pas d'utilité
HJournalStop Pas d'utilité
HListeRep Renvoie la liste des affectations des fichiers présents dans une analyse. Pas d'utilité
HListeAnalyse Renvoie la liste des analyses WinDev 7.5 disponibles dans un répertoire donné. Pas d'utilité
HLitBloque Uniquement pour compatibilité WD55. Pas d'utilité
HLitDernierBloque Uniquement pour compatibilité WD55. Pas d'utilité
HLitDernierSansBloquer Uniquement pour compatibilité WD55. Pas d'utilité
HLitPrécédentBloque Uniquement pour compatibilité WD55. Pas d'utilité
HLitPrécédentSansBloquer Uniquement pour compatibilité WD55. Pas d'utilité
HLitPremierBloque Uniquement pour compatibilité WD55. Pas d'utilité
HLitPremierSansBloquer Uniquement pour compatibilité WD55. Pas d'utilité
HLitRechercheBloque Uniquement pour compatibilité WD55. Pas d'utilité
HLitRechercheSansBloquer Uniquement pour compatibilité WD55. Pas d'utilité
HLitSansBloquer Uniquement pour compatibilité WD55. Pas d'utilité
HLitSuivantBloque Uniquement pour compatibilité WD55. Pas d'utilité
HLitSuivantSansBloquer Uniquement pour compatibilité WD55. Pas d'utilité
HModeAuto Pas d'utilité
HModePerso Pas d'utilité
HModeSemiPerso Pas d'utilité
HOuvre Ouvre un fichier. Pas d'utilité (le moteur SGBD le fait)
HOuvreAnalyse Ouvre une analyse au format Hyper File 7. Il est ainsi possible d'accéder aux fichiers décrits dans cette analyse, et à la structure de ces fichiers. Pas d'utilité
HOuvreConnexion Ouvre une connexion à une base de données spécifique. Pas d'utilité
HPoste Mémorise un numéro ou un identifiant unique de poste afin d'utiliser le journal et les transactions en réseau. Pas d'utilité
HRéindexe Reconstruit l'index d'un fichier. Pas d'utilité (spécifique SGBD)
HSubstNom Uniquement pour compatibilité WD55. Pas d'utilité
HSubstRep Associe le répertoire des données spécifié dans l'analyse à un répertoire présent sur le disque. Pas d'utilité
HVerifieIndex Vérifie que les données contenues dans le fichier d'index (fichier .NDX) référencent correctement les données contenues dans le fichier de données (.FIC). Cette fonction concerne uniquement les fichiers Hyper File. Pas d'utilité
HVueVersTable Uniquement pour compatibilité WD55. Pas d'utilité

Liste des bases accessibles

Base de données Accès natif Version DLL Langage d'accès Compatibilité SQLManagerX
MySQL MySQL4WD, PHP4WD 2.0.1 API
Parcours
Limites
Blocage
Blobs
Oracle PHP4WD 4.0.0.0 php
Parcours
Limites
Blocage
Blobs
Oracle 7, Oracle 8, Oracle 8i, Oracle 9i, Oracle 10g OTL4WD, PHP4WD 3.0.3 OTL.h
Parcours
Limites
Blocage
Blobs
DB2 DB24WD 1.0.1 OTL.h
Parcours
Limites
Blocage
Blobs
Interbase / Firebird FireBird4WD, PHP4WD 2.1.1 ibpp
Parcours
Limites
Blocage
Blobs
Pervasive.SQL ADO4WD 2.3.4 ADO
Parcours
Limites
Blocage
Blobs
Access ADO4WD 2.3.4 ADO
Parcours
Limites
Blocage
Blobs
MS-SQL (SQLserver) MSQL4WD, PHP4WD 1.0.0.0 ADO
Parcours
Limites
Blocage
Blobs
MySQL, SQLite, PostGreSQL, SQLServer, FireBird, Oracle par PHP PHP4WD 4.0.2.5 PHP
Parcours
Limites
Blocage
Blobs
PosteGreSQL PostGreSQL4WD, PHP4WD 1.0.0.2 API
Parcours
Limites
Blocage
Blobs
SQLite 2.x, SQLite 3.x SQLite4WD, PHP4WD 1.6.6 API DLL
Parcours
Limites
Blocage
Blobs
Toutes bases par ODBC ODBC4WD ODBC
Parcours
Limites
Blocage
Blobs

Légende :

 : Fonctionne

 : Non supporté par SQLManagerX

 : Non supporté par le SGBD

 : Nous travaillons dessus

 : Nous avons besoin d'aide pour ce sujet

Un autre site traitant des accès aux bases de données

Free ODBC Drivers, SQL Servers and Tools, Database Libraries and Source Code) : https://www.thefreecountry.com/sourcecode/database.shtml


Cette section recense les accès natifs ayant posé problème, soit lors de leur analyse, soit lors de leur mise en œuvre.

Ocelot4WD

Ocelot est un SGBD compatible avec la norme SQL1999, avec une exécution officielle de la norme ISO standard SQL et ANSI standard SQL.

L’usage d’Ocelot est uniquement réservé à MS-Windows95/98/Me/NT. Donc pas de gestion bas niveau, donc pas de DLL possible, donc pas d'accès natif associé.

Plus de renseignements ici : http://www.ocelot.ca

SAPDB4WD

Notre plus grosse déception. L'accès proposé est un accès ODBC. Donc pas de gestion bas niveau, donc pas de DLL possible, donc pas d'accès natif associé.

Pour accéder à cette base nous vous conseillons de vous orienter sur l'accès par la couche ADO ou celui par la couche ODBC.