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

Bases de données Delphi Discussion :

[XE7] Connexion à une base de données SQL Server via ODBC pour plate-forme cible OS X


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 26
    Points
    26
    Par défaut [XE7] Connexion à une base de données SQL Server via ODBC pour plate-forme cible OS X
    Bonjour à tous,

    Je suis sur Windows7 et je suis en train de créer une application multi-périphérique pour qu'elle puisse fonctionner sur Mac.
    J'utilise une base de données SQL Server.
    J'ai configuré une source de données ODBC sur Windows et elle fonctionne.
    J'ai installé et configuré une source de données ODBC sur Mac (elle a le même nom que celle de Windows) et elle fonctionne : via le terminal j'arrive à exécuter une requête SQL.
    Dans Delphi j'ai créé une application multi-périphérique avec des composants Firedac : un TFDConnection pour le lien avec la source ODBC et un TFDQuery pour faire une requête toute simple : SELECT * FROM UTILISATEURS. Lorsque je lance mon application j'affiche le nombre d'enregistrements.
    Sous Windows cela fonctionne.
    Sous Mac j'ai un message d'erreur au moment où je veux connecter le TFDConnection :
    Exception EFDException dans le module Project1 en 005EC72B.
    [FireDAC][Phys][ODBC] -314. Impossible de charger la bibliothèque du fournisseur [libodbc.dylib]. dlopen(libodbc.dylib, 1): no suitable image found. Did find: Conseil : vérifiez qu'il est dans le PATH ou dans les répertoires EXE de l'application et qu'il a un nombre de bits de x86.
    A priori, la bibliothèque est dans le bon dossier.

    Est-ce que quelqu'un sait pourquoi j'ai ce problème ?
    D'avance merci pour vos réponses.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Et moi qui croyait qu'avec Firedac on pouvait justement se passer de ODBC !
    bon enfin tout est bien expliqué sur dans le docwiki il n'y a plus qu'à checker tout ça courage
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Bonjour,
    Merci pour cette réponse mais c'est ce lien que j'ai utilisé pour faire mes paramétrages. Ils ne parlent pas du message d'erreur que j'ai.
    Moi aussi je pensais qu'avec FIREDAC on pouvait se passer d'ODBC mais apparemment pas pour une connexion à SQL Server (à moins que j'aie mal compris !).

  4. #4
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 912
    Points
    1 912
    Par défaut
    Bonjour,

    Oui, à mes yeux, c'est un peu flou la connectivité SGDB pour le multi périphérique, j'ai du mal à avoir des certitudes à ce sujet, il est indiqué dans l'aider qu'il faut utiliser dbExpress voir ici ( mais celui-ci va être obsolète ? ) et FireDac possède plus de fonctionalitées et en même temps, si c'est juste pour cibler Mac et Windows, il vaut mieux utiliser Firedac.
    Je suis allé voir le lien qu'indique Sergio et ils disent qu'il faut utiliser un des 4 drivers et on dirait que seul le 1er est un driver odbc... J'ai du mal à suivre...

    Tu a utilisé quel driver ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    J'ai utilisé ODBC et lorsque je fais tourner l'appli sur Windows ça fonctionne, du coup je n'ai pas testé les 3 autres possibilités.
    Sur Mac on n'a pas trop le choix apparemment :
    Logiciel client Mac OS X FireDAC requiert :
    - la bibliothèque du gestionnaire de pilote ODBC UnixODBC x86 (libodbc.dylib).
    - le pilote ODBC FreeTDS x86 (libtdsodbc.so).

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    Re,

    Peut-être qu'une recherche (ou un post) dans EDN te fournira la réponse
    D'expérience, Dmitry Arefiev, Le monsieur Firedac, répond rapidement
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je suis aussi intéressé par toute documentation sur ce sujet... même si je n'utilise pas le même SGDBR : mon serveur est un 5.5.40-MariaDB-squeeze 64. Je ne veux pas envisager d'utiliser ODBC... Je coince net avec FireDac notamment pour "passer" mes programmes sur mon mini-mac... Les tests de mise au point sont tellement chronophages et "irritants" que je "faiblis"... au point que j'ai partagé mon temps en 3 : 1/3 FMX - 1/3 Lazarus - 1/3 Qt 5.4... C'est très mauvais pour la productivité mais génial pour le reste. Enfin pour moi.

    Pour en revenir à FireDac, c'est certainement une mauvaise approche de ma part. Mais vraiment, je patauge -comme je l'ai fait en Lazarus- avec cette approche "cross-compilée".

    Du coup, j'ai ressorti Zeos... histoire de faire tourner le projet sur autre chose que Windows , histoire également de vérifier que les librairies clientes étaient adaptées. Et cela fonctionne sur les 3 OS avec Lazarus... Faut un peu bidouiller sous OS X (32 seulement) - j'ai trouvé sur un forum allemand - le tout avec libmariadb...

    Remarque : J'ai eu la surprise de voir qu'en rebaptisant une libmariadb.dll en libmysql.dll (64 bits) sur un TMySQL55Connection cela fonctionne (J'avais déjà testé l'inverse)... L'ouverture de la connexion est plus rapide en natif... mais seulement l'ouverture.
    Dernière modification par Invité ; 13/12/2014 à 19h38.

  8. #8
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Bonjour à tous,

    J'ai résolu mon problème mais pas avec la méthode initiale.
    J'ai essayé d'installer sur le Mac des versions diverses d'UnixODBC mais j'ai toujours le même message d'erreur.

    Donc j'ai trouvé des composants MS (TMSConnection, TMSQuery.....) de chez DEVART et là je peux me connecter à ma base de données SQL Server en direct, aussi bien sous Windows que sous Mac. Ces composants sont payants mais ils peuvent être testés gratuitement pendant 60 jours. Je les ai trouvés à cette adresse : http://www.devart.com/sdac/.

    Je vous remercie tous pour vos réponses !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/06/2010, 19h01
  2. Réponses: 5
    Dernier message: 18/05/2007, 14h34
  3. Connexion à une base de données SQL Server
    Par tsdia2 dans le forum Accès aux données
    Réponses: 5
    Dernier message: 06/04/2007, 11h32
  4. [SQL-Server] Connexion à une base de donnée SQL Server
    Par dieudo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/05/2006, 14h00
  5. Réponses: 3
    Dernier message: 29/03/2004, 18h02

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