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 :

Comment se connecter à une base de donnés en Delphi


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut Comment se connecter à une base de donnés en Delphi
    Bonjour,
    je travaille dans une entreprise qui utilise TDataModule pour se connecter à une base. ça me semble archaïque.
    Quel est aujourd'hui le meilleur moyen de se connecter ? Y a-t-il un document qui explique la meilleure façon de faire ? Je galère à trouver cette information..

    Je serai très reconnaissant que vous puissiez m'aider. Y a-t-il parmi vous des gens qui peuvent à leur compte intervenir en entreprise pour architecture un gros projet bancal ? Nous manquons de compétences. Merci

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par phil2colmar Voir le message
    Bonjour,
    je travaille dans une entreprise qui utilise TDataModule pour se connecter à une base. ça me semble archaïque.
    Quel est aujourd'hui le meilleur moyen de se connecter ? Y a-t-il un document qui explique la meilleure façon de faire ? Je galère à trouver cette information..

    Je serai très reconnaissant que vous puissiez m'aider. Y a-t-il parmi vous des gens qui peuvent à leur compte intervenir en entreprise pour architecture un gros projet bancal ? Nous manquons de compétences. Merci
    archaïque par rapport à quoi ?

    TDataModule ne permet pas en soit de se connecter à une base de données, c'est un module non visuel pour poser des composants non visuel, dont les composants base de données, mais cela peut être tout autre type de composant (ImageList, ActionList, TidHTTP....)

    Delphi propose aujourd'hui soit des composants orientés base de données (DBEdit, DBMemo, DBGrid, DBImage...) connectés à une DataSource, soit le liens LiveBindings
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut
    Merci, mais je ne comprends toujours pas comment on établit une connexion à une base avec Delphi. J'ai l'impression qu'il y a plusieurs façons de faire, mais quelle est la plus simple ? Pour moi une connexion c'est un host, une base, un mot de passe et le tour est joué. Je précise que j'ai une longue expérience dans d'autres langages. je suis déboussolé par la complexité apparente (je ne dis pas réelle) du Delphi et le peu de ressources sur le net dont je dispose.

    Je précise que nous faisons du web. uniquement du web

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 607
    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 607
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    la connexion (sensu-stricto) à une base de données se fait par un composant dédié, maintenant tout dépend du set de composant utilisé. Disons que dans les versions "modernes" de Delphi la connexion se fait via un FDConnection .
    Pour moi une connexion c'est un host, une base, un mot de passe
    plus un utilisateur et optionnellement un rôle mais surtout un ensemble de paramètres sur le mode de transaction.

    Cela écrit, si votre application utilise DBExpress comme connecteur, c'est vrai que cela peut vous sembler archaïque car, pour se connecter, par exemple à une table il semble me souvenir qu'il faut 4 composants là où pour Firedac il n'en faut qu'un (en plus de la connexion). Cela dit je n'ai jamais été objectif avec DBExpress

    Je précise que nous faisons du web. uniquement du web
    Je comprends mieux "l'allusion" au TDatamodule. Dans ces conditions, il y a de fortes chances que votre application soit multi-tiers, Datasnap ? Et utilise DBExpress à moins que ce ne soit de l'intraweb

    Quel est aujourd'hui le meilleur moyen de se connecter ?
    Là je n'ai pas suffisamment d'expérience pour asséner des règles, je n'en suis encore qu'à des essais pour de petites applications tests.
    Y a-t-il un document qui explique la meilleure façon de faire ?
    Des documents et des vidéos (en langue étrangère), une foultitude à partir du moment où l'on utilise les bons mots-clés :
    Multi-tier, DataSnap, REST (à l'occasion en y ajoutant JSON)

    Il faudrait affiner votre demande (fonction de votre application) pour que je puisse indiquer quelques liens. Il y a également de nouveaux outils (RAD server ) ou tiers (je pense à TMS Web) qui ne sont pas à négliger

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par phil2colmar Voir le message
    Merci, mais je ne comprends toujours pas comment on établit une connexion à une base avec Delphi. J'ai l'impression qu'il y a plusieurs façons de faire, mais quelle est la plus simple ? Pour moi une connexion c'est un host, une base, un mot de passe et le tour est joué. Je précise que j'ai une longue expérience dans d'autres langages. je suis déboussolé par la complexité apparente (je ne dis pas réelle) du Delphi et le peu de ressources sur le net dont je dispose.

    Je précise que nous faisons du web. uniquement du web
    sur quel langage ?

    Delphi est un langage à plusieurs niveaux, on peut :
    - tout faire par code comme en C en utilisant l'API du client Oracle ou SQLServer
    - créer des classes objets qui encapsulent cela pour se faire ses propres outils
    - utiliser les composants fournis dans l'IDE
    - utiliser des composants tiers

    out of the box, il suffit de déclarer la connexion dans l'onglet "Explorateur de données" du gestionnaire de projets. Une fois la connexion établie, un drag&drop de la table vers une fiche ou un DataModule place automatiquement tous les composants nécessaires.

    généralement on a :
    - 1 composant de connexion à la base (host, user, mot de passe)
    - au moins composant Transaction pour les bases transactionnelles, il permet de définir les paramètres de la transaction
    - x composants Table ou Query qui s'appuient sur la connexion
    - x composants DataSource qui font le lien entre un DataSet (Table ou Query) et des composants DB
    - des composants DBEdit, DBGrid... qui pointent sur une DataSource

    l'objectif de ce empilement de composants étant de tout faire à la souris sans taper une ligne de code (ou très peu pour les champs calculés par exemple), avec à sa disposition toute une série d'évènement (OnPost, BeforeDelete, BeforeScroll...) pour placer des traitements spécifiques selon les besoins.

    LiveBinding (il y a des tutos sur ce site) a une approche différente, c'est un moteur qui se charger de connecte les données du DataSet avec les propriétés des composants (Champ Nom <=> Propriété Text d'un Edit) sans avoir recours à un composants dédié TDBEdit par exemple.

    Après oui, Delphi a connu plusieurs couches logiciels d'accès aux données (BDE, dbExpress, FireDAC...et j'en oublie sans doute) mais à ce jour c'est FireDAC qui est recommandé...par contre même le BDE qui remonte à la première version de Delphi est encore exploitable aujourd'hui car Embarcadero a le soucis d'une transition en douceur (autant que faire ce peu) d'une version vers la suivante...ce qui implique de traîner des vieux trucs et d'avoir de multiples solutions à un même problème.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre émérite Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 188
    Par défaut
    Citation Envoyé par phil2colmar Voir le message
    Quel est aujourd'hui le meilleur moyen de se connecter ?
    Ça dépend de :

    Ta version de Delphi
    La base de données en question

    Il existe de multiples solutions comme déjà dit plus haut.

    Le TDatamodule n'est qu'une facilité pour les composants non-visuels (en particulier ceux d'accès aux base de données). Il est parfaitement possible d'instancier une connexion à une base de données sans utiliser de TDatamodule, tout peut être fait à la main dans le code.

    Pour les anciennes versions de Delphi j'utilisais les composants Zeos Library (Open source)
    Depuis que Firedac est devenu plus stable à mon gout j'utilise ces derniers composants

    Citation Envoyé par phil2colmar Voir le message
    Y a-t-il parmi vous des gens qui peuvent à leur compte intervenir en entreprise pour architecture un gros projet bancal ? Nous manquons de compétences. Merci
    Oui c'est possible vous pouvez me contacter par la messagerie du forum.

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut
    Nous sommes sur Delphi 10.1 Berlin
    Base Oracle et SQLServer

  8. #8
    Membre émérite Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 188
    Par défaut
    Citation Envoyé par phil2colmar Voir le message
    Nous sommes sur Delphi 10.1 Berlin
    Base Oracle et SQLServer
    Dans ce cas que ce soit avec Oracle ou SQLServer, Firedac et/ou dbGO ferons déjà très bien l'affaire, perso j'utilise pas dbExpress même il plus rapide, sa mise en œuvre est plus compliquée

    Question 1 : Quels composants sont utilisés pour la connexion à la base (hormis le TDatamodule, bien sur)

    dbGo, dbExpress, FireDac, Autre...

    Question 2 : Qu'est-ce qui fait dire que le projet est bancal ?

    Est-ce vraiment un problème d'accès aux bases de données ?

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 607
    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 607
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par phil2colmar Voir le message
    Y a-t-il parmi vous des gens qui peuvent à leur compte intervenir en entreprise pour architecture un gros projet bancal ? Nous manquons de compétences. Merci
    Idem que pour sergio_is_back me contacter par MP, mais uniquement en remote à moins que vous soyez en région nantaise

Discussions similaires

  1. Comment se connecter à une base de données oracle avec Talend?
    Par shark84 dans le forum Développement de jobs
    Réponses: 8
    Dernier message: 16/09/2011, 10h13
  2. Réponses: 10
    Dernier message: 10/06/2009, 13h26
  3. Comment se connecter à une base de données Access 97 ?
    Par yann87 dans le forum Bases de données
    Réponses: 1
    Dernier message: 05/12/2007, 08h49
  4. comment se connecter à une base de donnée acces
    Par meday dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/08/2007, 21h27
  5. Comment se connecter à une base de données se trouvant sur un serveur ?
    Par McLéonce dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 26/09/2006, 13h48

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