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 :

Seattle, FireDac, ODBC et MARS


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant en Automation
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Automation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Par défaut Seattle, FireDac, ODBC et MARS
    Bonjour à tous,

    Il y a très longtemps que je n'avais pas fait de BdD, j'en étais resté à ADO sous VB ou effleuré un peu le BDE...

    Ce matin je ne suis mis à créer une appli BDD Delphi 32 bits VCL from scratch, en essayant d'être constructif avec les nouveaux composants...
    DM avec composants FD, BdD SQL Server 2008 locale via ODBC.
    Des requêtes TFDQuery indépendantes, certaines assez complexes avec moults JOINs.
    Le tout visualisé dans les TDBGrid et autres TDBEdit et TDBLookupComboBox.

    Au début tout se passait bien...
    Après ajout de nouvelles fiches et nouvelles requêtes, ça a commencé...
    Je me retrouve avec des problèmes d'erreurs aléatoires sous IDE selon ce que j'ai fait défiler dans les TDBGrid (il me semble), mais systématique en RUN dès l'initialisation du DM et des fiches, du genre "La connexion est occupée avec les résultats d'un autre hstmt".
    Je cherche un peu sur le web et je trouve assez facilement de l'info Microsoft : c'est un problème ODBC SQL Server; en gros on doit lire l'ensemble du résultat d'une requête avant d'en demander une autre! Sinon il faut utiliser une connexion par requête ou depuis les versions récentes de SQL Server activer MARS avec quelque chose comme 'MultipleActiveResultSets=True".
    Bien.
    Mais je mets ça où dans mon appli Delphi ??? J'ai essayé de le coller dans les Params du TFDConnexion, indépendamment ou sur le ODBCAdvanced mais ça n'y fait rien (et ne génère aucune erreur d'ailleurs).

    Maintenant, ODBC avec FD je me dis qu'il y a quelque chose de malsain?
    Que peut on oublier les vieilles habitudes et partir sur de bonnes nouvelles bases simplement et relativement "nativement" pour une BdD locale? (honnêtement je ne suis pas encore allé voir IB).

    A bientôt,
    Philippe.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    je ne suis pas un pro SQLServeur mais la première réflexion à la lecture de ce Post est : "mais pourquoi avec la couche ODBC ?" il me semble bien je suis sûr que (après avoir lancer Delphi) Firedac peut accéder directement à un SGBD SQLServeur sans passer par cette couche supplémentaire.
    Maintenant, ODBC avec FD je me dis qu'il y a quelque chose de malsain?
    AMHA Oui , c'est malsain et surtout inutile

    Que peut on oublier les vieilles habitudes et partir sur de bonnes nouvelles bases simplement et relativement "nativement" pour une BdD locale? (honnêtement je ne suis pas encore allé voir IB).
    locale (si cela veut dire aussi mono poste) il y a SQLite , sinon il y a bien sûr IB mais aussi son fork open source Firebird

  3. #3
    Membre averti
    Homme Profil pro
    Consultant en Automation
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Automation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,
    je ne suis pas un pro SQLServeur mais la première réflexion à la lecture de ce Post est : "mais pourquoi avec la couche ODBC ?" il me semble bien je suis sûr que (après avoir lancer Delphi) Firedac peut accéder directement à un SGBD SQLServeur sans passer par cette couche supplémentaire.
    Euh, Dans FD Explorer, si on crée une définition, on peut choisir MsSQL direct, mais derrière ça passe par l'ODBC quand même, voit le volet "infos" :
    ================================
    Paramètres de définition de connexion
    ================================
    Non accessible.
    ================================
    FireDAC info
    ================================
    Tool = RAD Studio 10 Seattle
    FireDAC = 13.0.1 (Build 82709)
    Platform = Windows 32 bit
    Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR
    ================================
    Infos client
    ================================
    Loading driver MSSQL ...
    Chargement du gestionnaire de pilote odbc32.dll
    Création du handle d'environnement ODBC
    Recherche du pilote ODBC ...
    Vérification du pilote ODBC [SQL SERVER NATIVE CLIENT 11.0] ...
    Trouvé : [SQL Server Native Client 11.0]
    Driver Manager version = 03.81.10586.0000
    ================================
    Informations de session
    ================================
    Vérification de la session...
    Avertissement : SQL NC 2012 et MS ODBC 11 ne fonctionnent pas avec TVP.
    Current catalog =
    Current schema = dbo
    Driver name = sqlncli11.dll
    Driver version = 11.00.2100
    Driver conformance = 3
    DBMS name = Microsoft SQL Server
    DBMS version = 12.00.4213
    ça évite seulement de créer une définition ODBC dans le manager ODBC.
    en contrepartie cette connexion ne sera connue que dans FD.
    avec une entrée ODBC, cette BdD est également accessible pour les autres softs genre Excel et autres, c'est pour ça que je suis passé par là.
    Et passer par le FD Explorer et son fichier de config, c'est pareil que de passer par ODBC manager et son fichier de config...
    Et comme on peut directement spécifier l'entrée ODBC dans le composant TFDConnection sans passer par le FD Explorer, je trouvais ça simple et rapide?

    Ou alors j'ai loupé quelque chose?

    Edité: Bon, j'ai vu que le flag MARS est géré directement dans le fichier de defs de l'explorer et il est "on" par défaut c'est déjà ça de trouvé.
    Bon, je continue mon enquête...

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par PPA94 Voir le message
    Euh, Dans FD Explorer, si on crée une définition, on peut choisir MsSQL direct, mais derrière ça passe par l'ODBC quand même, voit le volet "infos" :
    ...
    Ou alors j'ai loupé quelque chose?
    C'est peut être moi, je ne suis pas comme déjà indiqué très "pro" SQLServeur (beaucoup trop compliqué à installer AMHA) mais plutôt Interbase/Firebird/SQLite
    J'ai bien installer cette production de Microsoft mais jamais utilisé avec Firedac

  5. #5
    Membre averti
    Homme Profil pro
    Consultant en Automation
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Automation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    C'est peut être moi, je ne suis pas comme déjà indiqué très "pro" SQLServeur (beaucoup trop compliqué à installer AMHA) mais plutôt Interbase/Firebird/SQLite
    J'ai bien installer cette production de Microsoft mais jamais utilisé avec Firedac
    Hélas, ma BdD SQL Server est déjà très avancée et je ne suis pas chaud maintenant pour migrer.
    C'est vrai que l'installation, la configuration et la gestion de MS SQL Server ne sont pas des plus conviviaux et intuitifs, au bas mot...

  6. #6
    Membre averti
    Homme Profil pro
    Consultant en Automation
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Automation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Par défaut
    De mieux en mieux...

    Même les applications FD "samples" sur MSSQL qui y font appel ne peuvent charger les fiches : classe TFDPhysMSSQLDriverLink non trouvée !
    Dans l'éditeur de code l'unité FireDAC.Phys.MSSQL est soulignée en rouge...

  7. #7
    Membre averti
    Homme Profil pro
    Consultant en Automation
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Automation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Par défaut
    De mieux en mieux.
    Je croyais avoir trouvé une méthode pour utiliser un link FD car le TFDConnection m'avertissait que le pilote MSSQL n'était pas recensé et m'invitait aimablement à inclure le composant dans mon projet... (sympa les messages CLAIRS des composants FD):

    [FireDAC][Phys]-300. Le pilote [MSSQL] n'est pas recensé. Pour recenser le composant [TFDPhysMSSQLDriverLink], vous pouvez le déposer dans votre projet.

    Oui oui, mais le composant TFDPhysMSSQLDriverLink nécessaire est absent de la palette FireDAC Links et d'ailleurs semble absente du package...

    C'est quoi ce m...... ?

    Il manque vraiment un outil expert FD dans l'EDI...

  8. #8
    Membre Expert
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Par défaut
    Bonjour,

    Citation Envoyé par PPA94
    le composant TFDPhysMSSQLDriverLink nécessaire est absent de la palette FireDAC Links et d'ailleurs semble absente du package...
    Quelle version et édition de Delphi avez-vous ?

  9. #9
    Membre averti
    Homme Profil pro
    Consultant en Automation
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Automation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Par défaut
    Citation Envoyé par Thierry Laborde Voir le message
    Quelle version et édition de Delphi avez-vous ?
    Seattle Version 23.0.21418.4207 avec Update1.

    Bon, il faut que je passe à l'Update 2 nommé Berlin pour voir si c'est fixé?

Discussions similaires

  1. XE2 FireDac ODBC : message d'erreur
    Par artmicro dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/08/2013, 10h05
  2. Problème de COMMIT avec MARS connections activés (ODBC)
    Par Yan302 dans le forum Développement
    Réponses: 0
    Dernier message: 27/03/2009, 11h50
  3. [Kylix] PostgreSql via ODBC
    Par doykati dans le forum EDI
    Réponses: 3
    Dernier message: 08/02/2007, 11h10
  4. [filemaker pro]odbc et dsn less
    Par google dans le forum Autres SGBD
    Réponses: 7
    Dernier message: 24/06/2002, 16h26
  5. Connexion ODBC
    Par Anonymous dans le forum Réseau
    Réponses: 2
    Dernier message: 23/04/2002, 13h10

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