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

Web & réseau Delphi Discussion :

Delphi Intraweb et Table de plus de 18000 rows


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Par défaut Delphi Intraweb et Table de plus de 18000 rows
    Bonjour tous le monde et un grand merci à Dany pour l'article d'intraweb pour delphi https://dany-leblanc.developpez.com/...lphi/intraweb/, alors moi j'ai une question concernent l'utilisation de DataTables de JQuery que j'utilise avec IntraWeb. à l'ouverture de la page l'affichage et long et prend beaucoup de temps pour affiché une datatables de jquery, sachant que la table contient 18500 ROWS, que faire pour que l'affichage se fait instantanément en 50 lignes, je suis coincé merci à tous.

    Delphi 10.2 Tokyo
    Intraweb 14.0
    Windows 8.1

  2. #2
    Rédacteur/Modérateur

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

    on déborde de Delphi puisqu'il s'agit plus de JQuery. Ce dernier a beaucoup évolué depuis mes dernières utilisations, le DataTable n'existait pas encore, c’était donc mes composants qui géraient les données.
    Ma première réaction était donc de parler de Threads et/ou de gestion de requêtes.
    Mais un petit tour dans les pages de JQuery Datatable semble indiquer qu'il y a des options à essayer
    Si j'étais vous je regarderais de plus près data-page-length, Paging, ScrollY

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Par défaut
    Bonjour, et merci Sergio, j'avoue ne pas comprendre votre réponse et ou trouvé data-page-length, Paging, ScrollY, moi j'ai suivi la vidéo de

    Il utilise dans l'exemple OnUnknownTag de IWTemplateProcessorHTML pour afficher les donnes dans datatables de JQuery, le processus marche bien mais l'affichage des donnes et longue.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    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 598
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par masterdash Voir le message
    Bonjour, et merci Sergio, j'avoue ne pas comprendre votre réponse et ou trouvé data-page-length, Paging, ScrollY
    je vous ai indiqué le lien, un peu de recherche sur le site et vous trouverez ! par exemple ici
    mais comme vous n'indiquez absolument pas comment vous chargez la table c'est tout ce que je (et d'autres) peut faire pour vous

    de plus, j'ai visionné rapidement la vidéo j'y vois un TClientDataset et je n'ai pas vraiment vu de Datatable et Jquery

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Par défaut
    Voici comment la tables et chargée:
    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
    procedure TIWAdherent.IWTemplateProcessorHTML1UnknownTag(const AName: string;
      var VValue: string);
    begin
    IF AnsiUpperCase(AName) = 'GRIDAHDERENTDATA' Then
      Begin
        UserSession.AdhereTable.First;
        While Not UserSession.AdhereTable.Eof Do
        Begin
          VValue := VValue + '<tr><td>' + UserSession.AdhereTable.FieldByName
            ('Num_Adherent').AsString + '</td>' + sLineBreak + '<td>' +
            UserSession.AdhereTable.FieldByName('Nom').AsString + '</td>'
            + sLineBreak + '<td>' + UserSession.AdhereTable.FieldByName
            ('Prenom').AsString + '</td>' + sLineBreak + '<td>' +
            UserSession.AdhereTable.FieldByName('DateDebut').AsString +
            '</td>' + sLineBreak + '<td>' + UserSession.AdhereTable.
            FieldByName('DateActiv').AsString + '</td>' + sLineBreak + '<td>' +
            UserSession.AdhereTable.FieldByName('Adresse').AsString +
            '</td>' + sLineBreak + '<td>' + UserSession.AdhereTable.
            FieldByName('Adresse_Suite').AsString + '</' + 'td></tr>' + sLineBreak;
          UserSession.AdhereTable.Next;
        End;
      End;
    end;

  6. #6
    Rédacteur/Modérateur

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

    c'est bien ce que je pensais en fait vous n'utilisez pas "DataTables de JQuery" mais créez un simple tableau.

    A mon avis le plus simple est d'utiliser plutôt un tableau plus court, égal au nombre de lignes qui peut être visible sur l'écran avec deux boutons supplémentaires permettant de naviguer d'avant en arrière et ainsi de gérer une position.
    Du coup la première chose à faire est de revoir AdhereTable qui ne doit plus être une table mais une requête (beaucoup plus légère) qui permettra de ne récupérer que les n lignes nécessaires et ce à partir d'une position dans la table. (cela va beaucoup dépendre du SGBD en général il s'agit de la clause LIMIT ou ROWS )
    une variable position est donc à mémoriser au niveau de la session.

    donc vous aurez à faire avec une requête paramétrée de ce style ( N est la position, R le nombre de lignes)
    MYSQL SELECT Num_Adherent,nom,Prenom,DateDebut,DateActiv,Adresse,Adresse_Suite FROM ADHERENTS LIMIT :N,:R ;
    MSSQL* SELECT Num_Adherent,nom,Prenom,DateDebut,DateActiv,Adresse,Adresse_Suite FROM ADHERENTS WHERE ROWNUM>=:N LIMIT :R ;
    POSTGRES SELECT Num_Adherent,nom,Prenom,DateDebut,DateActiv,Adresse,Adresse_Suite FROM ADHERENTS LIMIT :R,:N ;
    Firebird** SELECT Num_Adherent,nom,Prenom,DateDebut,DateActiv,Adresse,Adresse_Suite FROM ADHERENTS ROWS :R FROM :N

    * à vérifier
    ** dépend de la version

Discussions similaires

  1. y a t'il un forum Delphi Intraweb ?
    Par gregcat dans le forum Delphi
    Réponses: 1
    Dernier message: 12/03/2007, 11h55
  2. [XSL~FO] Problème avec une table de plus d'une page
    Par ganga dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 25/01/2007, 20h16
  3. [ASE]les tables les plus utilisé
    Par arona dans le forum Sybase
    Réponses: 4
    Dernier message: 21/09/2006, 14h25
  4. foreign key multiple (vers 2 tables ou plus)
    Par Bombastus dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/07/2006, 16h26
  5. [Delphi 2] Alter Table
    Par Form_Load dans le forum Bases de données
    Réponses: 11
    Dernier message: 23/04/2004, 14h26

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