Applications Tested with MyODBC
<<<
Programs Known to Work With MyODBC Support ODBC de MySQL
>>>

22.1.9 MyODBC Configuration
22.1 Support ODBC de MySQL
22 Pilotes MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Qu'est-ce qu'un Data Source Name , ou Nom de Source de Données?
Configuration du DSN MyODBC sur Windows
Configuration d'un DSN MyODBC sous Unix
Paramètres de connexion
Se connecter sans définir de DSN
Etablir une connexion distante d'un système A à un système B
Obtenir un fichier de trace ODBC
Applications Tested with MyODBC
->Programs Known to Work With MyODBC

22.1.9.9 Programs Known to Work With MyODBC

La majorité des programmes doivent pouvoir fonctionner avec MyODBC, mais ceux qui sont listés ici ont été testé par nous-même, ou bien été testé par des utilisateurs de confiance. Les descriptions fournissent des palliatifs aux problèmes rencontrés.

    Programme
    Commentaire
    Access
    Pour faire fonctionner Access :
      Si vous utilisez Access 2000, il est recommandé d'installer la dernière version 2.6 ou plus récente, de Microsoft MDAC ( Microsoft Data Access Components ) depuis http://www.microsoft.com/data/ . Cela va corriger un problème dans Access lors de l'exportation de données vers MySQL, lorsque le nom de la table et de ses colonnes ne sont pas spécfiés. Une autre solution à ce problème est de passer en MyODBC 2.50.33 et MySQL 3.23.x, qui, ensemble, fournissent un palliatif à ce problème.

      Nous vous recommandons aussi d'appliquer le Microsoft Jet 4.0 Service Pack 5 (SP5) qui est téléchargeable sur http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239114 . Cela corrigera des situations où les colonnes sont marquées comme #DELETED# dans Access.

      Note : si vous utilisez MySQL 3.22, vous devez appliquer le patch MDAC et utiliser MyODBC 2.50.32 ou 2.50.34 et plus récent pour corriger le problème.
      Pour toutes les versions d'Access, vous devez activer l'option MyODBC Return matching rows . Pour Access 2.0, il faut aussi activer l'option Simulate ODBC 1.0 .
      Il faut avoir une colonne timestamp dans toutes les tables qui seront modifiées. Pour une portabilité maximale, n'utilisez pas de spécification de taille dans la déclaration de la colonne. C'est à dire, utilisez TIMESTAMP , et non 'TIMESTAMP(n)' , n < 14.
      Vous devez avoir une clé primaire dans la table. Si non, les nouvelles lignes ou les lignes modifiées risquent d'apparaitre comme #DELETED# .
      Utilisez uniquement des champs décimaux DOUBLE . Access ne sait pas comparer des décimaux simple. Le symptôme est généralement que les nouvelles lignes ou les lignes modifiées apparaissent comme #DELETED# ou que vous ne pouvez pas trouver ou modifier ces lignes.
      Si vous utilisez MyODBC pour relier une table qui a une colonne BIGINT , le résultat risque d'apparaître comme #DELETED . La solution est la suivante :
        Ajoutez une ou plusieurs colonnes TIMESTAMP .
        Sélectionnez l'option Change BIGINT columns to INT dans le dialogue de connexion ODBC DSN Administrator.
        Effacez le lien de la table depuis Access et recréez le.
      Les anciennes lignes seront toujours affichées comme #DELETED# , mais les nouvellse lignes seront affichées correctement.
      Si vous avez toujours des erreurs de type Another user has changed your data après avoir ajouté une colonne de type TIMESTAMP , le truc suivant pourra vous aider : N'utilisez pas les données de la table table en mode tableau. Au lieu de cela, créez un formulaire avec les champs que vous vouleez, et utilisez le mode tableu de ce form . Activez l'option DefaultValue de la colonne TIMESTAMP , avec la valeur NOW() . C'est une bonne idée que de masquer la colonne TIMESTAMP pour que les utilisateurs ne soient pas perturbés.
      Dans certains cas, Access génère des commandes SQL incorrecte que MySQL ne peut pas comprendre. Vous pouvez corriger cela en sélectionnant l'option "Query|SQLSpecific|Pass-Through" dans le menu d'Access.
      Sous NT, Access indique que les colonnes BLOB sont des OLE OBJECTS . Si vous voulez avoir des colonnes MEMO à la place, changez les colonnes BLOB en TEXT avec ALTER TABLE .
      Access ne peut pas toujours gérer les colonnes DATE correctement. Si vous avez des problèmes avec avec elles, utilisez DATETIME .
      Si vous avez une colonne d'Access définie commme BYTE , Access va l'exporter comme TINYINT au lieu de TINYINT UNSIGNED . Cela vous posera des problèmes si vous avez des valeurs supérieures à 127.
    ADO
    Lorsque vous codez avec l'API ADO et MyODBC, vous devez faire attention aux propriétés par défaut qui ne sont pas supportées par MySQL. Par exemple, en utilisant CursorLocation Property , adUseServer va retourner un résultat de -{}1 pour RecordCount Property . Pour avoir la bonne valeur, vous devez donner la valeur de adUseClient à cette propriété, tel que présenté ci-dessous :
    
    Dim myconn As New ADODB.Connection
    Dim myrs As New Recordset
    Dim mySQL As String
    Dim myrows As Long

    myconn.Open "DSN=MyODBCsample"
    mySQL = "SELECT * from user"
    myrs.Source = mySQL
    Set myrs.ActiveConnection = myconn
    myrs.CursorLocation = adUseClient
    myrs.Open
    myrows = myrs.RecordCount

    myrs.Close
    myconn.Close
    Un autre palliatif est d'utiliser SELECT COUNT(*) pour connaître le nombre de lignes.
    Active server pages (ASP)
    Il est recommandé de sélectionner l'option Return matching rows .
    applications BDE
    Pour faire fonctionner ces applications, vous devez sélectionner les options Don't optimize column widths et Return matching rows .
    Borland Builder 4
    Lorsque vous lancez une requête, vous pouvez utiliser la propriété Active ou la méthode Open . Notez que Active commencera par émettre automatiquement une requête SELECT * FROM ... . Cela n'est pas forcément pratique si vos tables sont grandes.
    ColdFusion (On Unix)
    Les informations suivantes sont tirées de la documentation ColdFusion :Utilisez les informations suivantes pour configurer le serveur ColdFusion pour Linux avec le pilote unixODBC et MyODBC pour MySQL. Allaire a vérifié que MyODBC 2.50.26 fonctionne avec MySQL 3.22.27 et ColdFusion pour Linux. Toutes les versions plus récentes devraient aussi fonctionner. Vous pouvez télécharger MyODBC sur http://dev.mysql.com/downloads/connector/odbc/ .

    ColdFusion Version 4.5.1 vous permet d'utiliser l'administrateur ColdFusion pour ajouter des sources de données MySQL. Cependant, le pilote n'est pas inclus avec ColdFusion Version 4.5.1. Avant que le pilote MySQL n'apparaisse dans les listes de sources ODBC, vous devez compiler et copier le pilote MyODBC dans /opt/coldfusion/lib/libmyodbc.so .

    Le dossier Contrib contient le programme Array qui vous permet de compiler et supprimer le fichier DSN pour les applications Coldfusion qui utilisent le pilote MyODBC.
    DataJunction
    Vous devez changer pour exporter des VARCHAR au lieu des types ENUM , car l'export de ce dernier pose des problèmes à MySQL.
    Excel
    Fonctionne. Quelques conseils :
      Si vous avez des problèmes avec les dates, essayez de les transformer en chaîne, avec la fonction CONCAT() function. Par exemple :
      
      SELECT CONCAT(rise_time), CONCAT(set_time)
          FROM sunrise_sunset;
      Les valeurs lues comme des chaînes seront reconnues correctement par Excel97.

      Le but de CONCAT() dans cette exemple est de faire croire à ODBC que la colonne est de type ``chaîne''. Sans CONCAT() , ODBC sait que la colonne est de type TIME, et Excel ne le comprendra pas.

      Notez que c'est un bogue dans Excel, car il convertit automatiquement une chaîne en heure. Cela serait bien si la source était un fichier de texte, mais malheureusement ici, la connexion ODBC indique le bon type pour chaque colonne.
    Word
    Pour lire des données depuis MySQL vers des documents Word/Excel, vous devez utiliser le pilote MyODBC et le Add-in Microsoft Query.

    Par exemple, pour créer une base de données avec une table avec 2 colonnes de texte :

      Inserez deux lignes avec le client 'mysql' .
      Créez un fichier DSN file en utilisant le gestionnaire ODBC, par exemple, my , pour la base de données créée.
      Lancez Word.
      Créez un document vide.
      Dans la barre d'outil Database , cliquez sur le bouton Insert Database .
      Cliquez sur le bouton Get Data .
      Dans la gauche de l'écran Get Data , cliquez sur Ms Query .
      Dans Ms Query , créez une nouvelle source de données en utilisant le DSN my .
      Sélectionnez la nouvelle requête.
      Sélectionnez les colonnes que vous voulez.
      Ajoutez le filtre que vous voulez.
      Ajoutez le tri que vous souhaitez.
      Sélectionnez Return Data to Microsoft Word .
      Cliquez sur Finish .
      Cliquez sur Insert Data et sélectionnez les lignes.
      Cliquez sur OK et voyez les lignes dans votre document Word.
    odbcadmin
    Program de test pour ODBC.
    Delphi
    Vous devez utiliser BDE Version 3.2 ou plus récent. Sélectionnez l'option Don't optimize column width lors de la connexion à MySQL.

    De plus, il y a des codes pratiques Delphi qui configurer une entrée ODBC et une source BDE pour MyODBC. La source BDE requiert BDE Alias Editor qui est gratuit sur Delphi Super Page. (Merci à Bryan Brunton bryan@flesherfab.com pour cela):

    
    fReg:= TRegistry.Create;
      fReg.OpenKey('\Software\ODBC\ODBC.INI\DocumentsFab', True);
      fReg.WriteString('Database', 'Documents');
      fReg.WriteString('Description', ' ');
      fReg.WriteString('Driver', 'C:\WINNT\System32\myodbc.dll');
      fReg.WriteString('Flag', '1');
      fReg.WriteString('Password', '');
      fReg.WriteString('Port', ' ');
      fReg.WriteString('Server', 'xmark');
      fReg.WriteString('User', 'winuser');
      fReg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources', True);
      fReg.WriteString('DocumentsFab', 'MySQL');
      fReg.CloseKey;
      fReg.Free;

      Memo1.Lines.Add('DATABASE NAME=');
      Memo1.Lines.Add('USER NAME=');
      Memo1.Lines.Add('ODBC DSN=DocumentsFab');
      Memo1.Lines.Add('OPEN MODE=READ/WRITE');
      Memo1.Lines.Add('BATCH COUNT=200');
      Memo1.Lines.Add('LANGDRIVER=');
      Memo1.Lines.Add('MAX ROWS=-1');
      Memo1.Lines.Add('SCHEMA CACHE DIR=');
      Memo1.Lines.Add('SCHEMA CACHE SIZE=8');
      Memo1.Lines.Add('SCHEMA CACHE TIME=-1');
      Memo1.Lines.Add('SQLPASSTHRU MODE=SHARED AUTOCOMMIT');
      Memo1.Lines.Add('SQLQRYMODE=');
      Memo1.Lines.Add('ENABLE SCHEMA CACHE=FALSE');
      Memo1.Lines.Add('ENABLE BCD=FALSE');
      Memo1.Lines.Add('ROWSET SIZE=20');
      Memo1.Lines.Add('BLOBS TO CACHE=64');
      Memo1.Lines.Add('BLOB SIZE=32');

      AliasEditor.Add('DocumentsFab','MySQL',Memo1.Lines);
    C++ Builder
    Testé avec BDE Version 3.0. Le seul problème est que lorsque le schéma de tables change, les champs de requêtes ne sont pas mis à jour. BDE, de son coté, ne semble pas reconnaître les clés primaires, et seulement l'index appelé PRIMARY , mais ce n'est jamais un problème.
    Vision
    Vous devez sélectionner l'option Return matching rows .
    Visual Basic
    Pour être capable de modifier une table, vous devez définir une clé primaire dans la table.Visual Basic avec ADO ne peut pas gérer les grands entiers. Cela signifie que certaines requêtes comme SHOW PROCESSLIST ne fonctionneront pas comme attendu. Pour pallier ce problème, il faut utiliser l'option OPTION=16384 dans la chaîne de connexion ODBC ou sélectionez l'option Change BIGINT columns to INT dans l'écran MyODBC. Vous pouvez aussi sélectionner l'option Return matching rows .
    VisualInterDev
    SI vous avez un BIGINT dans votre résultat, vous pouvez aussi avoir l'erreur [Microsoft][ODBC Driver Manager] Driver does not support this parameter Essayez de sélectionner Change BIGINT columns to INT dans la configuration MyODBC.
    Visual Objects
    Vous devriez sélectionner l'option Don't optimize column widths .
    MS Visio Enterprise 2000
    Nous avons créé un diagramme de base de données en connectant depuis MS Vision Enterprise 2000 vers MySQL via MyODBC (2.50.37 ou plus récent) et en utilisant les fonctions de retro-ingénierie de Visio pour lire les informations sur la base (Visio montre toutes les définitions de colonnes, les clés primaires, les index, etc.). De plus, nous avons aussi testé la conception de nouvelles tables avec Visio, et avons réussi à les exporter de MySQL via MyODBC.

<< Programs Known to Work With MyODBC >>
Applications Tested with MyODBC MyODBC Configuration Support ODBC de MySQL