Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 20 sur 31
  1. #1
    Rédacteur/Modérateur
    Avatar de evarisnea
    Homme Profil pro Evaris NGOUZO
    Ingénieur intégration
    Inscrit en
    juin 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Nom : Homme Evaris NGOUZO
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : juin 2005
    Messages : 1 958
    Points : 3 618
    Points
    3 618

    Par défaut [Tutoriel] Delphi 2010 : Connexion à Firebird via dbExpress



    Récemment, Embarcadero rendait disponible Delphi 2010 et RAD Studio 2010 avec un lot de nouveautés, dont le support natif de l'excellent SGBD Firebird.
    Fervent adepte de ces derniers, je me suis empressé de faire quelques tests et de vous proposer ce tutoriel :

    Delphi 2010 : Connexion à Firebird via dbExpress

    Vos commentaires et ou questions sont les bienvenus sur ce fil

    A lire aussi :
    Présentation de delphi 2010

  2. #2
    Membre du Club
    Inscrit en
    février 2005
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : février 2005
    Messages : 151
    Points : 52
    Points
    52

    Par défaut

    Sympa ce petit tuto

    Je suis en train de passer a Delphi 2010 mon appli. J'utilisais jusqu'a présent les composants Interbase (IBX).
    Ils ne sont plus compatible avec Firebird ?


    Jai aussi apprécié la petite démo du mode déconnecté en passant par le DataSet XML.

    Par contre, il y a un équivalent des IBEvent en utilisant les DB Express?

    Maxime

  3. #3
    Rédacteur/Modérateur
    Avatar de evarisnea
    Homme Profil pro Evaris NGOUZO
    Ingénieur intégration
    Inscrit en
    juin 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Nom : Homme Evaris NGOUZO
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : juin 2005
    Messages : 1 958
    Points : 3 618
    Points
    3 618

    Par défaut

    Citation Envoyé par tipiweb Voir le message
    Sympa ce petit tuto

    Je suis en train de passer a Delphi 2010 mon appli. J'utilisais jusqu'a présent les composants Interbase (IBX).
    Ils ne sont plus compatible avec Firebird ?
    en fait, ils n'ont jamais été officiellement compatibles avec Firebird. Ils fonctionnent juste parce que Firebird est issu d'Interbase 6.

    Citation Envoyé par tipiweb Voir le message
    Jai aussi apprécié la petite démo du mode déconnecté en passant par le DataSet XML.


    Citation Envoyé par tipiweb Voir le message
    Par contre, il y a un équivalent des IBEvent en utilisant les DB Express?
    à ma connaissance, non, il n'y en a pas. il faut savoir que les Events sont des spécificités d'Interbase et Firebird, or dbExpress est lui conçu pour fonctionner avec une plusieurs SGBD. je vais tout de même vérifier.

  4. #4
    Membre du Club
    Inscrit en
    février 2005
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : février 2005
    Messages : 151
    Points : 52
    Points
    52

    Par défaut

    Merci bien pour ces précisions evarisnea

    J'utilise les IBEvent pour rafraichir les données seulement si celle-ci ont changé. Lorsque le poste A fait un update sur une table, le poste B reçoit l'ordre de rafrichir les données (via un trigger).


    Connais-tu une astuce pour arriver à ce meme résultat sans faire un rafraichissement toutes les X secondes?


    Si il y a une solution à mettre en place pour arriver à celà, je passe au DbExpress

    Maxime

  5. #5
    Rédacteur/Modérateur
    Avatar de evarisnea
    Homme Profil pro Evaris NGOUZO
    Ingénieur intégration
    Inscrit en
    juin 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Nom : Homme Evaris NGOUZO
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : juin 2005
    Messages : 1 958
    Points : 3 618
    Points
    3 618

    Par défaut

    pour l'astuce, oui il y en a une.

    tu utilises un couple TIdUDPServer, TIdUDPClient dans ton application.
    lorsqu'un enregistrement est mis à jour, tu envoie un broadcast avec le client udp avec un message concernant la table et l'opération de mise à jour effectuée (UPDATE, DELETE).
    les autres poste reçoivent le message et effectuent un action selon la mise à jour.

    j'ai vu cela dans un exemple quelque part, je ne me souviens plus où.

  6. #6
    Membre régulier
    Profil pro
    Chef de projet en SSII
    Inscrit en
    février 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2003
    Messages : 59
    Points : 89
    Points
    89

    Par défaut

    Merci pour le tutoriel ! Effectivement, depuis le temps qu'on l'attendait, cette connexion Firebird !

    Une petite remarque sur la forme : l'excellente partie sur le mode déconnecté devrait être carrément copié dans la FAQ, car elle est valable pour tout type de connexion (DBX, BDE, IBX, et autres).

    Sur le fond, les DBX semblent assez lourd à gérer, ça fait beaucoup de composants à placer pour un pauvre dbgrid. En plus, je suis assez surpris : où sont les transactions ?




    Je plussois pour le client / serveur UDP, même si ça peut poser certains problèmes avec des pare-feu. Un petit bout de code pourri et pas sécurisé :

    Sur le poste qui doit recevoir la mise à jour, tu poses un IdUDPServer et un IdUdpClient.

    Pour le UdpServeur : il nous servira à recevoir l'ordre de rafraichissement. Deux trucs à configurer : le port et l'évènement OnUdpRead, qui contiendra par exemple
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TFormServeurUdp.IdUDPServerCommUDPRead(
      AThread: TIdUDPListenerThread; AData: TIdBytes;
      ABinding: TIdSocketHandle);
    var s : string;
    begin
     
    s := String(Adata);
     
    if copy(s,1,3) = 'MAJ'
    then begin
           Dataset.close;
           Dataset.open;
           end
    Le idUpdClient nous servira lui à nous identifier en tant que poste en attente de la mise à jour avec le serveur
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
         try
            IdUDPClient.send(ip_serveur,port,'JE SUIS PRET A RECEVOIR DES  MISES A JOUR');
         except on e:exception
         do begin
            showmessage('Erreur de connexion au serveur : '+e.message);
            if IdUDPClient.Connected then IdUDPClient.Disconnect;
            end;
         end;



    Et sur le poste qui vient de faire la mise à jour (le poste "serveur"), tu poses un TidUdpClient et un TidUdpServer.

    Le TidUdpServer nous servira à enregistrer la liste des clients qui sont prêt à recevoir des mises à jour
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TFormClientUdp.IdUDPServerUDPRead(
      AThread: TIdUDPListenerThread; AData: TIdBytes;
      ABinding: TIdSocketHandle);
    var s : string;
    begin
     
    s := String(Adata);
     
    if s = 'JE SUIS PRET A RECEVOIR DES  MISES A JOUR'
    then begin
           liste_ip.append(abinding.ip); // ou abinding.peerip, je sais plus
           end
    Le TidUdpClient nous servira à envoyer les mises à jour. Tu configures ton port et, après ton INSERT / UPDATE / DELETE
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for i := 0 to liste_ip -1
         try
            IdUDPClient.send(liste_ip[i],port,'MAJ');
         except on e:exception
         do begin
            showmessage('Erreur de connexion au serveur : '+e.message);
            if IdUDPClient.Connected then IdUDPClient.Disconnect;
            end;
         end;
    Mais bon ce n'est valable que si tu as un serveur bien défini de mises à jour, et pleins de petits clients. Si tous tes postes peuvent faire des mises à jour et tous doivent se rafraichir, je ne crois pas qu'il y ait de solutions miracles (et la tienne me semble pas mal en fait, je vais p'etre l'utiliser).
    ++ khena
    Rien n'est plus beau q'une clé,
    Tant qu'on ne sait pas ce qu'elle ouvre.

  7. #7
    Rédacteur/Modérateur
    Avatar de evarisnea
    Homme Profil pro Evaris NGOUZO
    Ingénieur intégration
    Inscrit en
    juin 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Nom : Homme Evaris NGOUZO
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : juin 2005
    Messages : 1 958
    Points : 3 618
    Points
    3 618

    Par défaut

    Citation Envoyé par khena Voir le message
    Merci pour le tutoriel ! Effectivement, depuis le temps qu'on l'attendait, cette connexion Firebird !

    Une petite remarque sur la forme : l'excellente partie sur le mode déconnecté devrait être carrément copié dans la FAQ, car elle est valable pour tout type de connexion (DBX, BDE, IBX, et autres).
    effectivement, cette partie est valable pour tout type de connexion, il suffit que le composant jeu de données dérive de TDataset par exemple. une entrée dans la FAQ, pourquoi pas

    Citation Envoyé par khena Voir le message
    Sur le fond, les DBX semblent assez lourd à gérer, ça fait beaucoup de composants à placer pour un pauvre dbgrid. En plus, je suis assez surpris : où sont les transactions ?
    c'est ce que l'on se dit les premières fois que l'on les utilise, mais on s'y habitue. et de plus on utilise le même code pour toutes les bases des données supportées.
    pour ce qui est des transactions tu peux les gérer manuellement avec un code de ce genre pour DBX < 4 :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    procedure TMainForm.Button1Click(Sender: TObject);
    var
      Tr: TTransactionDesc;
    begin
      SQLConnection1.Open();
      if SQLConnection1.TransactionsSupported then
      begin
        Tr.IsolationLevel := xilREADCOMMITTED;
        SQLConnection1.StartTransaction(Tr);
      end;
      try
        SQLConnection1.Execute('UPDATE Table1 SET Champ1 = Champ1 + 1 WHERE Champ0 = 10', Nil);
        SQLConnection1.Execute('UPDATE Table1 SET Champ1 = Champ1 - 1 WHERE Champ0 = 9', Nil);
        if SQLConnection1.TransactionsSupported then
          SQLConnection1.Commit(Tr);
      except
        if SQLConnection1.TransactionsSupported then
          SQLConnection1.Rollback(Tr);
      end;
    end;
    et pour DBX4 :
    Code :
    1
    2
    3
    4
    5
    6
    7
      Tr := SQLConnection1.BeginTransaction(TDBXIsolations.ReadCommitted);
      try
        // mises a jour, insertions ici ...
        SQLConnection1.CommitFreeAndNil(Tr);
      except
        SQLConnection1.RollBackFreeAndNil(Tr);
      end;
    et une transaction implicite est démarrée lorsqu'on appelle la méthode ApplyUpdates du TClientDataset.


    Citation Envoyé par khena Voir le message
    ...
    Mais bon ce n'est valable que si tu as un serveur bien défini de mises à jour, et pleins de petits clients. Si tous tes postes peuvent faire des mises à jour et tous doivent se rafraichir, je ne crois pas qu'il y ait de solutions miracles (et la tienne me semble pas mal en fait, je vais p'etre l'utiliser).
    en fait dans la méthode dont je parle, il s'agit d'utiliser un broadcast par poste effectuant une mise à jour, les autres postes pourront donc recevoir la notification et actualiser l'affichage en conséquence (c'est le principe). dans le cas où l'on a une infrastructure avec plusieurs réseaux, la solution que tu émet (la liste des clients) est judicieuse, car les routeurs vont bloquer le broadcast

  8. #8
    Expert Confirmé

    Profil pro Franck Soriano
    Leader Technique
    Inscrit en
    juin 2005
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Nom : Franck Soriano
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : juin 2005
    Messages : 1 757
    Points : 3 942
    Points
    3 942

    Par défaut

    Citation Envoyé par evarisnea Voir le message
    dans le cas où l'on a une infrastructure avec plusieurs réseaux, la solution que tu émet (la liste des clients) est judicieuse, car les routeurs vont bloquer le broadcast
    Sans même aller chercher plusieurs routeurs, les solutions de type broadcast et messages Udp peuvent poser d'autres problèmes : La communication n'est pas sécurisée (au sens fiabilité). Lorsque tu envoies un broadcast ou un message avec un protocole non connecté tel que Udp, rien ne te garanti que les clients le recevrons.

    Si tu as un réseau de mauvaise qualité (genre un marteau piqueur à côté du cable réseau qui vient le parasiter, un WiFi...), il se peut que le client reçoive un message corrompu. Dans ce cas, la corruption est détecté et le message par à la poubelle direct. Ou même, si le client est occupé au moment de recevoir le message, il se peut qu'il parte aux oubliettes.
    Donc il y a toujours un risque qu'un client ne recoivent pas une notification.
    Avec un protocole connecté, de type TCP/IP, le client signale au serveur que le message n'est pas arrivé correctement, et lui demande de le réenvoyer. Mais comme il faut gérer les trames d'acquittement, les échanges sont un peu plus lents.

    A mon avis, l'Udp convient pour un broadcast (avec la fiabilité qui vient avec), mais si on passe à l'étape suivante qui consiste à contacter chaque client individuellement, il vaut mieux le faire en TCP/IP.

  9. #9
    Membre Expert Avatar de chaplin
    Inscrit en
    août 2006
    Messages
    1 215
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 1 215
    Points : 1 574
    Points
    1 574

    Par défaut

    Vaudrait peut être mieux passer en architecture 3 tiers dans ces cas là.

  10. #10
    Rédacteur/Modérateur
    Avatar de evarisnea
    Homme Profil pro Evaris NGOUZO
    Ingénieur intégration
    Inscrit en
    juin 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Nom : Homme Evaris NGOUZO
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : juin 2005
    Messages : 1 958
    Points : 3 618
    Points
    3 618

    Par défaut

    salut chaplin, pourrais-tu développer ?

  11. #11
    Membre émérite Avatar de Montor
    Homme Profil pro
    Inscrit en
    avril 2008
    Messages
    863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : avril 2008
    Messages : 863
    Points : 891
    Points
    891

    Par défaut

    Bonjour
    just pour dire il faut travailler en mode deconnectée avec ClientDataSet...si la propriete Filename a ete specifiée le contenu du fichier sera enregister dans le DFM qui va produit une appli volumineuse

  12. #12
    Membre Expert Avatar de chaplin
    Inscrit en
    août 2006
    Messages
    1 215
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 1 215
    Points : 1 574
    Points
    1 574

    Par défaut

    @evarisnea:

    Basculer l'application que tu as réalisé en utilisant Datasnap, c'est à dire passer d'une application client/serveur à une application multi-niveaux.
    La couche intermédiaire(business) se chargerait de transmettre les événements aux applications clientes, pour déclencher le raffraichissement des données.
    Il faudrait utiliser un pattern "Observer" de telle sorte que les applications clientes soient au courant des raffraîchissements (ie IBevent) que la couche logique intercepterait de la base de données, qu'elle transmettrait en faisant un broadcast aux applications connectées via datasnap.

  13. #13
    Invité de passage
    Inscrit en
    août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    bonjours
    je me permet de vous contacter suis a un petit souci a la lecture de votre cour :"Delphi 2010 : Connexion à FireBird via dbExpress".

    j ai donc télécharger et installer comme montrer dans le cour FireBird tout cela sans souci

    arriver a l étape 4 (IV. Création de la base de données et de la table de Contacts)

    j ouvre cmd et tape la commende indiquer :

    create database 'c:\dbexpressfirebird\test.fdb';

    a ce moment la isql me retourne un message :

    statement failed, SQLSTATE = 28000

    your user name and password are not defined ask your database administrator to set up a firebird login.


    je suis sous windows 7 avec firebird 2.5 et delphi EX (pas encor u besoin de toucher a delphi)

    merci d avence

  14. #14
    Rédacteur/Modérateur
    Avatar de evarisnea
    Homme Profil pro Evaris NGOUZO
    Ingénieur intégration
    Inscrit en
    juin 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Nom : Homme Evaris NGOUZO
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : juin 2005
    Messages : 1 958
    Points : 3 618
    Points
    3 618

    Par défaut

    as-tu essayé ceci ?
    IN c:\DBExpressFirebird\create_script.sql;

  15. #15
    Invité de passage
    Inscrit en
    août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    J ai déjà fait différend test:

    IN c:\DBExpressFirebird\create_script.sql;
    qui me retourne le même message.

    Dans isql J ai aussi ajouter la ligne pour définir le user comme indiquer dans la doc ( http://www.firebirdsql.org/manual/fr...-creating.html )
    SQL >CREATE DATABASE 'c:\DBExpressFirebird\ ',
    CON>user 'sysdba' password 'masterkey';
    mais le message reste inchangée

    j ai aussi tester
    SQL> IN c:\DBExpressFirebird\create_script.sql,
    CON>user 'sysdba' password 'masterkey';
    avec un nouveau message d erreur:

    Unable to open c:\DBExpressFirebird\create_script.sql,

    du coup je suis en trin de chercher comment ajouter un user et je me demande si il peu y avoir des conflits avec d autre service ou avec la gestion des utilisateurs windows

  16. #16
    Expert Confirmé

    Homme Profil pro Philippe Makowski
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 312
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Makowski
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 312
    Points : 3 559
    Points
    3 559

    Par défaut

    Code :
    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
    C:\Fb25\bin>isql -help
    Unknown switch: help
    usage:    isql [options] [<database>]
            -a(ll)                  extract metadata incl. legacy non-SQL tables
            -b(ail)                 bail on errors (set bail on)
            -c(ache) <num>          number of cache buffers
            -ch(arset) <charset>    connection charset (set names)
            -d(atabase) <database>  database name to put in script creation
            -f(etch_password)       fetch password from file
            -e(cho)                 echo commands (set echo on)
            -ex(tract)              extract metadata
            -i(nput) <file>         input file (set input)
            -m(erge)                merge standard error
            -m2                     merge diagnostic
            -n(oautocommit)         no autocommit DDL (set autoddl off)
            -nod(btriggers)         do not run database triggers
            -now(arnings)           do not show warnings
            -o(utput) <file>        output file (set output)
            -pag(elength) <size>    page length
            -p(assword) <password>  connection password
            -q(uiet)                do not show the message "Use CONNECT..."
            -r(ole) <role>          role name
            -r2 <role>              role (uses quoted identifier)
            -s(qldialect) <dialect> SQL dialect (set sql dialect)
            -t(erminator) <term>    command terminator (set term)
            -tr(usted)              use Windows trusted authentication
            -u(ser) <user>          user name
            -x                      extract metadata
            -z                      show program and server version
    donc :

    Code :
    c:\>isql -user SYSDBA -password masterkey -i  c:\DBExpressFirebird\create_script.sql -m -m2 -q -o monlogpourvoirsitoutvabien.txt
    devrait faire l'affaire
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  17. #17
    Membre du Club
    Inscrit en
    août 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 145
    Points : 49
    Points
    49

    Par défaut Exploitation base de données

    Bon jour
    J'ai une question pour l'exploitation de la base de données
    Faisons un edit pour la recherche des enregistrements
    Pouvez vous nous montrer les étapes
    Merci

  18. #18
    Rédacteur/Modérateur
    Avatar de evarisnea
    Homme Profil pro Evaris NGOUZO
    Ingénieur intégration
    Inscrit en
    juin 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Nom : Homme Evaris NGOUZO
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : juin 2005
    Messages : 1 958
    Points : 3 618
    Points
    3 618

    Par défaut

    pour ma part, je n'ai pas très bien compris ta question.
    qu'as-tu essayé ?
    où bloques-tu ?

    normalement si tu arrives à connecter proprement ton clientdataset à la source de données, un locate sur le dataset ou un filtre devraient te permettre d'arriver à ce que tu veux ?

  19. #19
    Membre du Club
    Inscrit en
    août 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 145
    Points : 49
    Points
    49

    Par défaut

    Citation Envoyé par evarisnea Voir le message
    pour ma part, je n'ai pas très bien compris ta question.
    qu'as-tu essayé ?
    où bloques-tu ?

    normalement si tu arrives à connecter proprement ton clientdataset à la source de données, un locate sur le dataset ou un filtre devraient te permettre d'arriver à ce que tu veux ?
    Bon jour
    Suivant le tutoriel la connexion est faite normalement et les données sont affichées sur le DBGRID mais le code edit.change ne donne pas les resultats voulues
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     procedure TForm1.Edit1Change(Sender: TObject);
    begin
    WITH SQLQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT *FROM ARTICLES WHERE REFERENCE_2 LIKE :Design');
      Params.ParamByName('Design').AsString:=''+Edit1.Text+'';
      Open;
    end;
    // SQLQuery1.Locate('ARTICLE_FR',Edit1.Text,[loCaseInsensitive,loPartialKey]);
    end;

  20. #20
    Rédacteur/Modérateur
    Avatar de evarisnea
    Homme Profil pro Evaris NGOUZO
    Ingénieur intégration
    Inscrit en
    juin 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Nom : Homme Evaris NGOUZO
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : juin 2005
    Messages : 1 958
    Points : 3 618
    Points
    3 618

    Par défaut

    bon déjà actualiser un Query à chaque saisie dans l'edit ce n'est pas le top, faudrait ajouter un délai avec un timer avant l'actualisation.

    à vue de nez ce qui manque dans ton code c'est le close/open du clientDataset connecté à la query, après la réouverture de celle ci.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •