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

SQL Firebird Discussion :

[IB6] Code SQL.


Sujet :

SQL Firebird

  1. #1
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut [IB6] Code SQL.
    J'ai vainement cherché comment récupérer le code SQL suite à exécution d'une requète.

    J'utilise des TIBxxxxx (database,transaction et query), et je n'ai trouvé aucune propriété ou méthode pour accéder à SQLCode.

    La lecture attentive de la doc IB (API guide) m'a fait remarqué .

    L'utilisation de cette fonction est faite dans l'unité IB.PAS (jusque là, tout va bien )
    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
    procedure IBDataBaseError;
    var
      sqlcode: Long;
      IBErrorCode: Long;
      local_buffer: array[0..IBHugeLocalBufferLength - 1] of char;
      usr_msg: string;
      status_vector: PISC_STATUS;
      IBDataBaseErrorMessages: TIBDataBaseErrorMessages;
    begin
      usr_msg := '';
     
      { Get a local reference to the status vector.
        Get a local copy of the IBDataBaseErrorMessages options.
        Get the SQL error code }
      status_vector := StatusVector;
      IBErrorCode := StatusVectorArray[1];
      IBDataBaseErrorMessages := GetIBDataBaseErrorMessages;
      sqlcode := isc_sqlcode(status_vector);
      ...............
    Singe voit, singe fait : je prends les quelques lignes qui m'intéressent dans cette proc pour me faire 1 fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function GetSQLCode:LongInt;
    var
      sqlcode: Long;        // type défini comme LongInt dans IBheader
      IBErrorCode: Long;
      status_vector: PISC_STATUS;
     begin
        status_vector := StatusVector;
        IBErrorCode := StatusVectorArray[1];
        sqlcode := isc_sqlcode(status_vector);
        result:=sqlcode;
    end;
    que j'ai implantée dans un TcustomerData (MonUnit)

    Mais, ça ne compile pas:
    motif: types incompatibles MonUnit.integer et IB.integer
    sur la ligne
    status_vector := StatusVector;
    et je ne vois pas pourquoi !

    En désespoir de cause, j'ai mis ce même code dans IB.pas (là, c'est OK), mais je ne suis bien sûr pas satisfait de cette solution...

    Qui peut m'éclairer sur mon erreur ?

    Les sources IB* sont consultables ICI
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    C'est plus un probleme Delphi, mais je pense que dans votre unité il y a également une redéfinition d'un type utilisé dans le ISCStatus.

    Peut etre en metant le uses IBExternals en premier dans votre liste celà passera mieux.

    Ou si celà ne marche pas j'essayerai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    uses
      {$IFDEF MSWINDOWS}
        Windows,
      {$ENDIF}
      {$IFDEF LINUX}
       Libc,
      {$ENDIF}
      SysUtils, Classes, IBHeader,
      IBExternals, IBUtils, DB, IBXConst, ....... vos uses

Discussions similaires

  1. Probleme code sql
    Par Micavk dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 25/01/2006, 14h28
  2. [Mon premier code SQL] Multiples INNER JOIN's
    Par Paulinho dans le forum Langage SQL
    Réponses: 1
    Dernier message: 14/11/2005, 09h04
  3. Création BD Access Code SQL pour relation 1-1 ?
    Par colorid dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/10/2005, 16h42
  4. Réponses: 7
    Dernier message: 12/09/2005, 11h05
  5. Récupérer le code SQL à partir d'une requête
    Par Edith_T dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 23/11/2004, 14h10

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