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 :

Affichage des tables sql serveur 2000 sous delphi7


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 129
    Points : 52
    Points
    52
    Par défaut Affichage des tables sql serveur 2000 sous delphi7
    Bon soir à tous.
    J'ai un problème pour afficher les tables de sql serveur 2000 sous delphi7.
    Les tables sont crées sous sql serveur 2000 sur une machine locale, mais comment affiché le contenu de ces tables dans un dbgrid sous delphi7?
    J'ai procedé de la manière suivante pour se connecter à la base:
    j'ai cré l'alias ODBC nommé A
    UTO
    et à travers delphi7 j'ai mis l'élément
    DATABASE
    sur
    Module de données
    et j'ai lié l'alias
    AUTO
    à
    Module de données
    .
    Ensuite j'ai mis les éléments Tables sur le module de données pour me permettre de se connecter sur les tables de sql serveur 2000 mais quand j'essaye de se connecter sur les tables que j'ai crées sous sql serveur, je ne vois pas ces tables sous delphi7.
    En conclusion aidez moi à m'expliquer le passage car il me paraît difficile.
    Excusez moi de mes fautes.
    Merci par avance.
    Par Zizou7.

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par Zizou7 Voir le message
    J'ai un problème pour afficher les tables de sql serveur 2000 sous delphi7.
    Les tables sont crées sous sql serveur 2000 sur une machine locale, mais comment affiché le contenu de ces tables dans un dbgrid sous delphi7?
    Je suppose que l'alias est opérationnel et que si j'appelle l'explorateur de données depuis Delphi 7, je peux ouvrir avec cet alias la base et en lister les tables...

    Pour visualiser le contenu d'une table dans une grille avec le BDE, il faut au minimum les composants suivants : TDatabase, TTable, TDataSource et TDBGrid
    Il faut affecter les propriétés suivantes (depuis le concepteur visuel de l'EDI ou par code) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // Rappel des composants utilisés
    // DataBase1: TDatabase;
    // Table1: TTable;
    // DataSource1: TDataSource;
    // DBGrid1: TDBGrid;
     
    DataBase1.AliasName := 'AUTO';
    DataBase1.DatabaseName := 'MaDB';
     
    Table1.DatabaseName := 'MaDB';
    Table1.TableName := 'dbo.NomTableSqlServer'; // Indiquer ICI le nom de table adéquat !
     
    DataSource1.DataSet := Table1;
     
    DBGrid1.DataSource := DataSource1;
    Lors de l'ouverture de la table (Table1.Active := True;), la connexion va être ouverte (après éventuelle saisie d'un identifiant et d'un mot de passe) et la grille remplie.

    Cela étant, j'aurais plutôt utilisé les composants ADO pour me connecter à une base SqlServer 2000 : on évite l'alias, la chaine de connexion peut être créée depuis l'EDI en double cliquant sur la propriété ConnectionString du composant TADOConnection...
    Philippe.

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Voir le SQL sur sysobjects dans Comment obtenir la liste des tables d'une base de donnée ?

    Cela fonctionne aussi sur Sybase SQL Anywhere 10 sous BCB2007 aussi bien ADO qu'en DBX ainsi qu'en BCBXE3
    il suffit de se connecter sur la base que l'on souhaite lire via un TADOConnection ou TSQLConnection

    Pour le BDE, une fois le TDatabase correctement configuré comme le propose Philippe, tente un TQuery si le TTable ne passe pas !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 129
    Points : 52
    Points
    52
    Par défaut Afficher les tables sous sql serveur 2000
    Merci.
    Comme vous m'avez si bien dit, j'ai passé par la méthode ADO pour afficher les différentes tables.
    Mais ma question est de savoir si on peut afficher le contenu de ces tables dans les DBGRID?
    Si oui comment?
    C'est une aide que je demande à tous.
    Excusez moi de mes différentes fautes.
    Merci par avance.
    Par Zizou7.
    NB J'ai mis un objet
    Adoconnection1
    pour se connecter à la base de données de sql serveur 2000 puis à travers un objet
    AdoTable1
    j'ai sélectionné les différentes tables auxquelles je veux utiliser.
    Mais est ce qu'on peut visualiser le contenu de ces tables avec un DBGRID?
    Si oui comment.

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par Zizou7 Voir le message
    Mais ma question est de savoir si on peut afficher le contenu de ces tables dans les DBGRID?

    Tu veux juste le contenu des Tables ?
    il n'y a aucune difficulté à faire cela ! C'est le basique du moindre tutoriel

    Avec le TADOConnection, utilise la propriété ConnectionString : Connection strings for SQL Server 2000, 7.0

    Il suffit d'utiliser du TADOQuery et un SELECT, utiliser la méthode Open() ou la propriété Active

    Est-ce que tu es connecté sur le bon serveur, avec le bon utilisateur, avec les droits nécessaires ?
    Je ne connais pas assez SQL Server, par défaut, je pense que tu as fais les choses simplement donc un accès assez simpliste

    Une fois le Open effectué
    Le DBGrid connecté via un TDataSource, lui même connecté sur le TADOQuery affichera tout naturellement les données !
    Tout cela est automatique si les composants sont correctement relié entre eux
    - via l'IDE et l'Inspecteur d'Objet
    - via le code de Philippe DataSource1.DataSet := Table1; DBGrid1.DataSource := DataSource1;
    Citation Envoyé par Zizou7 Voir le message
    j'ai sélectionné les différentes tables auxquelles je veux utiliser.
    Plusieurs Tables ??
    Voir LE SQL de A à Z : 3e partie - le SELECT sur plusieurs tables - les jointures

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Table1.ChampTruc, Table2.ChampBidule, Table3.ChampMachin
    FROM Table1
    INNER JOIN Table2 ON Table1.ID_Jointure1et2 = Table2.ID_Jointure1et2
    INNER JOIN Table3 ON Table2.ID_Jointure2et3 = Table3.ID_Jointure2et3

    Remarque : C'est pénible à lire tes citations pour un mot !
    utilise plutôt [CODEINLINE]AdoTable1[/CODEINLINE] donnant AdoTable1
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 129
    Points : 52
    Points
    52
    Par défaut Afficher le contenu des tables sql serveur 2000 sous delphi7
    Bon soir?
    Mon problème est que j'ai fait plusieurs tables dont je veux afficher leurs contenus dans les
    TDBGRID
    differents.
    J'ai passé par le
    TAdoconnection
    et
    TAdoTable
    pour avoir accès à ces tables.
    Aidez moi pour l'affichage des contenus de ces tables.
    Merci par vance.
    Par Zizou7.
    NB:Excusez moi des differentes erreurs.
    Voici une liste de ces tables:TASSURE,TVEHICULE.
    TASSURE(NUMASSURE,ASSURE,ADRESSE) et TVEHICULE(CODE,MARQUE,TYPE,IMMATRICULATION,SERIE);

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Je ne vois pas d'évolution dans ta réponse par rapport à nos propositions,
    tu ne fournis aucun code, hormis tes "citations" pénibles à lire !

    Au lieu de [quote]AdoTable1[/quote]
    utilise plutôt [CODEINLINE]AdoTable1[/CODEINLINE] !
    tu alourdis inutilement tes messages

    On ignore même si tu as suivi un tutoriel ADO
    L'affichage d'une table dans un TDBGrid c'est le B.A-BA de l'utilisation d'une DB !

    Une Video [ame="http://www.youtube.com/watch?v=MxKVjYiyE8s"]Delphi 2010 Tutorial 2 - Part 1 Connecting to the Database[/ame]
    Avec de l'ACCESS, tu dois pouvoir t'y retrouver si tu connais correctement SQL Server


    On ne peut pas ici te faire un cours sur l'utilisation de TADOTable, il faut que tu fasse l'effort de lire :
    - Utilisation des composants ADO
    - Utilisation des ensembles de données ADO
    - Connexion à un stockage de données avec TADOConnection
    - Ouverture et fermeture des ensembles de données
    - ...

    Tu utilises des TADOTable, as-tu ne serais que changer la propriété TableName ?
    Utiliser la méthode Open
    As-tu correctement fait le lien, dans cet ordre, entre TADOConnection -> TADOTable -> TDataSource -> TDBGrid ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 129
    Points : 52
    Points
    52
    Par défaut Affichage des tables sql serveur 2000 sous delphi7
    Bonjour,
    Je vous remercie très bien de l'aide que vous m'apportez pour la réalisation de ce projet.
    J'ai pus affiché le contenu de ces tables par la méthode que vous m'avez fournit.
    J'ai relié les Tdatasources aux TAdotables, ensuite j'ai relié les Tdatasources aux Dbgrids et naturellement j'ai eu le contenu de ces tables tant demandées.
    Donc merci encore.
    NB: il ya un message d'erreur qu'il m'affiche dont je ne connais pas d'où vient le problème, une fois de plus aidez moi à remonter cette situation qui me trouble encore.
    Voici le message qu'il m'affiche: le projet Projet1.exe à provoqué une classe d'exception EvarianTypecastError avec le message 'Impossible de convertir le variant de type (null) en type (string).Processus stoppé. Utilisez pas à pas ou Exécuter pour continuer.
    Quand je clique sur ok puis exécuter ensuite Ok puis exécuter, il exécute. Mais je ne sais pas pourquoi il m'affiche le message d'erreur?
    Merci par Avance.
    Par Zizou7.

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par Zizou7 Voir le message
    Voici le message qu'il m'affiche: le projet Projet1.exe à provoqué une classe d'exception EvarianTypecastError avec le message 'Impossible de convertir le variant de type (null) en type (string).Processus stoppé. Utilisez pas à pas ou Exécuter pour continuer..
    C'est probablement une notification du déboggueur, tu dois tenter de lire un champ contenant NULL et de l'afficher en string !
    Evite les AsVariant ou Value au profit de AsInteger, AsString qui ne provoque pas ce genre d'erreur (normalement, ADO, je n'ai que très peu pratiqué)

    Si c'est sans aucun code (étonnant), c'est donc un soucis entre ADO et la DBGrid, cela peut venir du driver choisi et sa gestion des nulls, c'est un élément qui peut être pénible avec la DB

    Delphi 7 c'est vieux quand on pense que l'on est en version 17 (XE3) ou 18 (XE4) aujourd'hui !
    Idem pour SQL Server 2000 d'ailleurs !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. taille des tables sql server 2000
    Par zwina2004 dans le forum Développement
    Réponses: 4
    Dernier message: 19/01/2011, 23h01
  2. Affichage des tables dans le désordre sous TOAD en 10G
    Par farenheiit dans le forum Administration
    Réponses: 2
    Dernier message: 22/04/2009, 10h21
  3. Réponses: 0
    Dernier message: 22/01/2009, 11h31
  4. Supprimer une image dans une table SQL Serveur 2000
    Par Soobook dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2006, 17h00
  5. Supprimer une colonne sous SQL Serveur 2000
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/07/2003, 12h24

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