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

Delphi Discussion :

Firedac Type incompatible


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Fxg
    Fxg est déconnecté
    Membre émérite
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 514
    Par défaut Firedac Type incompatible
    Bonjour,

    Je suis en train de tester le passage pour mon application des composants ZeosDB vers FireDac (base Firebird) sous XE8
    La compilation bute sur un message d'erreur que j'ai du mal à interpréter:

    [dcc32 Erreur] Unit2.pas(347): E2010 Types incompatibles : 'string' et 'TFDDatSTable'

    dans la fonction suivante au niveau de la ligne 10

    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
    function TDM2.dernier_id(Table: string): integer;
    var
      dernier_id: TFDQuery;
    begin
      dernier_id := TFDQuery.Create(nil);
      with dernier_id do
      begin
        Connection := FDConnection1;
        DataSource := DSDernier_id;
        sql.Text := 'SELECT gen_id(GEN_' + Table +
          '_ID, 0) AS nombre FROM RDB$DATABASE';
        try
          active := true;
          result := dernier_id.FieldByName('Nombre').AsInteger;
        except
          dernier_id.free;
        end;
      end;
    end;

  2. #2
    Rédacteur/Modérateur

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

    c'est le nom du paramètre qui ne va pas , remplace 'table' par 'nomtable' et c'est nickel
    [Edit] en fait Table est une propriété de TFDDataset (unité Firedac.comp.DataSet) d'où la confusion à cause du with

    par contre je ne vois pas à quoi sert la ligne 9 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSource := DSDernier_id;
    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
     
    function TDatas.test(nomTable : String) : Integer;
    var aQuery : TFDQuery;
    begin
      aQuery:=TFDQuery.Create(nil);
      try
      with aQuery do
       begin
        Connection := FDConnexion;
         SQl.Text:='SELECT gen_id(GEN_' + nomTable +
          '_ID, 0) AS nombre FROM RDB$DATABASE';;
       try
        Active:=True;
        Result:=aQuery.FieldByName('nombre').AsInteger;
        Active:=False;
       except
         result:=-1;
       end;
      end; 
      finally
        aQuery.Free;
      end;
    end;
    Note : sais tu qu'il y a un outil qui permettrai (note le conditionnel) de mouliner les sources du projet afin de remplacer les unités et composants de ZEOS (ou autre) vers Firedac ?
    si oui as-tu réussi à l'utiliser ?

  3. #3
    Membre chevronné
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Billets dans le blog
    4
    Par défaut pas de transaction pour dernier_id
    Bonjour

    dans la requête, je ne vois pas de composant transaction créé pour le dernier_id .

    Peut-être qu'il n'y en a pas besoin.
    Mais globalement, sauf pour les composants Zeos, il est bon de créer un composant transaction et de l'associer au Query et à la base de données.

    Dans notre cas, il n'y aura pas d'incidence, puisque le generator est incrémenté .

    Cordialement

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 706
    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 706
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par alheuredudejeuner Voir le message
    dans la requête, je ne vois pas de composant transaction créé pour le dernier_id .
    Peut-être qu'il n'y en a pas besoin.
    peut être que je me trompe, mais si la connexion est liée a des transactions (propriété Transaction et UpdateTransaction) la Query utilise alors ces dernières

    Dans notre cas, il n'y aura pas d'incidence, puisque le generator est incrémenté .
    Tu voulais plutôt dire n'est pas incrémenté

  5. #5
    Fxg
    Fxg est déconnecté
    Membre émérite
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 514
    Par défaut
    Merci Serge. Je n'avais pas cherché aussi loin que le nom de la variable déjà utilisé, mais j'aurais dû m'en douter quand même en choisissant Table, mais comme cela fonctionnait avec les composants Zeos.

    Sinon j'avais bien commencé à regarder l'utilitaire FDDFMChanger. Comme il ne fait que changer le nom des composants en lui donnant des règles de fonctionnement. J'ai préféré faire la même chose en utilisant notepad Recherche/Remplacer pour faire la même chose sur les sources et dans les DFM et comme mon application n'est pas non plus monstrueuse et deux coups de cuillères à pot c'était fait (à une erreur bien stupide sur le nom).

    Je n'avais pas mis de système de transactions pour deux raisons :
    - je ne maitrisais pas tout sur le sujet et je voulais finaliser au plus vite mon application
    - la base de données est locale avec un seul utilisateur donc je ne voyais pas l'intérêt de me compliquer la tâche (cf point 1) mais je peux me tromper

    Mais je suis en train de le rajouter

    Merci à vous deux.

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

Discussions similaires

  1. [VB.NET] Type Incompatible
    Par Cyrilange dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/11/2009, 21h08
  2. Querystring ==> type incompatible
    Par Kara dans le forum ASP
    Réponses: 15
    Dernier message: 01/07/2005, 12h42
  3. ODBC Access => Type Incompatible avec un champ DATE ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 6
    Dernier message: 23/04/2005, 03h02
  4. Types Incompatibles
    Par olivierlsf dans le forum Bases de données
    Réponses: 1
    Dernier message: 11/03/2005, 19h01
  5. [LG]Problême "types incompatibles"
    Par pierrOPSG dans le forum Langage
    Réponses: 7
    Dernier message: 23/04/2004, 22h34

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