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 :

Procédure "Check" non trouvée par le compilo


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations forums :
    Inscription : Mars 2006
    Messages : 85
    Points : 95
    Points
    95
    Par défaut Procédure "Check" non trouvée par le compilo
    Je suis en train d'étudier l'accès DBE avec sa propre API.

    L'example de Borland (Template Delphi 6) tourne trés bien si j'enlève la procédure Check. Par exemple: (DbiInit(nil)); au lieu de Check(DbiInit(nil));
    Evidemment je perds la fonctionalité de "Check".

    Below is the complete program that puts all of the individual steps together. It demonstrates each of the basic steps described in the "Basic procedure" for BDE application development. You can execute the template program and step through it to see how it works: it opens a BDE sample table, visits one record, and retrieves the value from one field in that record. Use this template program as a skeleton on which to build your own BDE programs.

    In this example program, the handler for the OnClick event of the TButton component Button1 executes the BDE code. The BDE code accesses a Paradox table and retrieves the value from a field in that table. The retrieved field value is assigned as the value of the Caption property of the TLabel component Label1.
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    unit BDEProg1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, BDE;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Label1: TLabel;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
    end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.DFM}
     
    procedure TForm1.Button1Click(Sender: TObject);
     
    var
      hDB: hDBIDb; // Database handle
      hCur: hDBICur; // Handle to the data cursor
      szTableName: array [0..DBIMAXNAMELEN] of Char; // Table name
      CursorProps: CURProps; // Data cursor properties
      RecordBuffer: pBYTE; // Buffer into which to load a record
      Company: array [0..30] of Char;  // Variable for Company field
      IsBlank: BOOL; // Variable for blank fields
    begin
      Check(DbiInit(nil));
      Check(DbiOpenDatabase(nil, nil, dbiREADONLY, dbiOPENSHARED, nil, 0, nil, nil, hDB));
     
      Check(DbiSetDirectory(hDB, 'd:\Program Files\Borland\Borland Shared\Data'));
      Check(DbiSetPrivateDir('c:\Temp'));
      szTableName := 'Customer';
      Check(DbiOpenTable(hDB, szTableName, szPARADOX, nil, nil, 0, dbiREADONLY, dbiOPENSHARED, xltFIELD, False, nil, hCur));
      Check(DbiGetCursorProps(hCur, CursorProps));
      RecordBuffer := AllocMem(CursorProps.iRecBufSize * SizeOf(BYTE));
      Check(DbiSetToBegin(hCur));
      Check(DbiGetNextRecord(hCur, dbiNOLOCK, RecordBuffer, nil));
     
      Check(DbiGetField(hCur, 2, RecordBuffer, pBYTE(@Company), IsBlank));
      FreeMem(RecordBuffer);
      if not (hCur = nil) then Check(DbiCloseCursor(hCur));
      if not (hDB = nil) then Check(DbiCloseDatabase(hDB));
      Check(DbiExit);
      Label1.Caption := StrPas(Company);
    end;
     
    end.
    Si je la laisse le compilo me réponds Undeclared identifier "Check".

    Quelle est ma bêtise ?

    Merci, cordialement,
    Horacio

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Il manque DBTables dans les uses.

    @+ Claudius

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations forums :
    Inscription : Mars 2006
    Messages : 85
    Points : 95
    Points
    95
    Par défaut
    Merci Claudius,

    J'ai regardé la FAQ Delphi pour voir une méthode générale de trouver la rélation entre la fonction (procédure) et la *.dcu qui la contient, mais j'ai ne rien trouvé. Existe-t-il une méthode générale pour ce cas ?

    Cordialement,
    Horacio

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    La méthode la plus simple consiste à consulter l'aide de Delphi.
    Curseur sur la procédure/fonction/type recherché, puis F1. L'aide précise toujours l'unité en question.

    @+ Claudius

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

Discussions similaires

  1. DLL non trouvée par le designer (0x8007007E)
    Par pierre.chatelier dans le forum Visual Studio
    Réponses: 5
    Dernier message: 14/04/2008, 15h21
  2. .jar non trouvé par Eclipse alors que
    Par fripette dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/03/2008, 16h16
  3. Probleme de classes non trouvées par Java
    Par poleta77 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 15/08/2007, 16h23

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