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 :

L'utilisation de OpenSchema via ADO en Delphi


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut L'utilisation de OpenSchema via ADO en Delphi
    Je voudrais récupérer la structure d'un table d'une base et pour cela j'aimerais utilise OpenSchema.

    Sous VB je n'ai aucun problème mais sous Delphi avec le code suivant j'ai une erreur mémoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Var
       l_rs : TADODataSet;
       EmptyParam : OleVariant;
     
    Begin
       l_rs := TADODataSet.Create(Nil);
      ObjetConnection.OpenSchema(siColumns, EmptyParam, EmptyParam, l_rs);
    End;
    Je pense que c'est au niveau de EmptyParam qui est mal défini mais je ne sais pas quel type lui donner.

  2. #2
    Membre averti
    Avatar de Hauwke
    Inscrit en
    Septembre 2005
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 329
    Points : 400
    Points
    400
    Par défaut
    Citation Envoyé par Delphi-ne
    Je voudrais récupérer la structure d'un table d'une base et pour cela j'aimerais utilise OpenSchema.

    Sous VB je n'ai aucun problème mais sous Delphi avec le code suivant j'ai une erreur mémoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Var
       l_rs : TADODataSet;
      // EmptyParam : OleVariant; inutile avec Openschema
    
    Begin
       l_rs := TADODataSet.Create(Nil);
      ObjetConnection.OpenSchema(siColumns, EmptyParam, EmptyParam, l_rs);
    End;
    Je pense que c'est au niveau de EmptyParam qui est mal défini mais je ne sais pas quel type lui donner.
    essayez de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ObjetConnection.OpenSchema(siColumns, EmptyParam, EmptyParam, l_rs);
    End;
    sans intervenir sur le type de emptyparam
    Cordialement,
    Hauwke

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Si je ne définis pas EmptyParam j'obtiens une erreur de compilation : Identificateur non déclaré.

  4. #4
    Membre averti
    Avatar de Hauwke
    Inscrit en
    Septembre 2005
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 329
    Points : 400
    Points
    400
    Par défaut
    Montre ton code, c'est pas ta fonction qui cloche mais ta clause Uses et le Tdataset déclaré en variable locale.
    Essaies de poser le Tdataset sur une fiche vierge... Comme suit :
    Basic mais marche à tous les coups:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    unit UForm;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;
     
    type
      TForm1 = class(TForm)
        Cnnt1: TADOConnection;
        Dts1: TADODataSet;
        Ds1: TDataSource;
        DBGrid1: TDBGrid;
        Bt1: TButton;
        ADOTable1: TADOTable;
        procedure Bt1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Bt1Click(Sender: TObject);
    begin
    Cnnt1.OpenSchema(sicolumns, emptyparam, emptyparam, Dts1);
    end;
    end.
    Cordialement,
    Hauwke

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Exact, la clause Uses était incompléte.
    EmptyParam est défini dans Variants

    Merci beaucoup

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

Discussions similaires

  1. [TOPIC OFFICIEL] Comment utiliser le RDC de Crystal en Delphi ?
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 21/12/2009, 12h24
  2. Connexion native entre Delphi et Postgre via ADO
    Par gilardino dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/12/2008, 13h45
  3. delphi -> SQLserver via ADO ?
    Par shnider dans le forum Bases de données
    Réponses: 8
    Dernier message: 29/07/2006, 09h43
  4. [ADO] utilisation de l'unité adodb sous delphi 2005 PE
    Par dams580 dans le forum Bases de données
    Réponses: 8
    Dernier message: 17/02/2006, 09h40
  5. Utilisation d'une dll écrite en delphi 5 dans VB6
    Par Jean-Louis dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2002, 09h19

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