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

API, COM et SDKs Delphi Discussion :

Remplir une combobox depuis une base de données à travers Datasnap


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur (aussi appelé "programmateur" ou "magicien")
    Inscrit en
    Octobre 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur (aussi appelé "programmateur" ou "magicien")
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 101
    Points : 102
    Points
    102
    Par défaut Remplir une combobox depuis une base de données à travers Datasnap
    Salut les devs !

    Je développe une application mobile reliée à une base de données externe. J'ai pour ce faire mis en place un serveur Datasnap, qui fonctionne.

    J'aimerais maintenant remplir une combobox avec les résultats d'une requête (contenant les utilisateurs possibles), et j'ai besoin d'afficher les noms des utilisateurs, ainsi que d'avoir le code qui y est lié.
    En gros, il me faudrait par exemple un array de record, afin que je puisse naviguer dedans. Mais là je bloque. Comment dois-je procéder ?

    J'avais déjà utilisé les composants TFDJSONDataSets dans une précédente application, pour remplir une table avec les livebindings. J'ai donc pensé utiliser ça, mais je ne sais pas comment traiter le TFDJSONDataSets que je reçois.

    Avez-vous une idée à me proposer ?
    Delphi 7 et 10.3.2
    IBExpert et Firebird 2.5

    Fervent partisan de la méthode du canard en plastique .

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Que ce soit VCL ou FMX pourquoi ne pas envisager les LiveBindings ?
    J'avais déjà utilisé les composants TFDJSONDataSets dans une précédente application, pour remplir une table avec les livebindings.
    je vois que c'est le cas
    mais je ne sais pas comment traiter le TFDJSONDataSets que je reçois.
    quel est la différence avec la précédente application ?
    j'ai besoin d'afficher les noms des utilisateurs, ainsi que d'avoir le code qui y est lié.
    si c'est que ça un FillDisplayCustomFormat au niveau du lien fera l'affaire
    Nom : FillDisplayCustomFormat.PNG
Affichages : 239
Taille : 36,3 Ko
    image provenant de ma prochaine parution, "FMX – Boîte de choix , Auto-complétion et alternatives"
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur (aussi appelé "programmateur" ou "magicien")
    Inscrit en
    Octobre 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur (aussi appelé "programmateur" ou "magicien")
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 101
    Points : 102
    Points
    102
    Par défaut
    Bnjour,

    Merci de votre réponse !

    Car je n'ai quasiment aucune connaissance dessus, et que le timing du projet est assez court, ainsi j'essaie d'utiliser ce que je connais .
    Que ce soit VCL ou FMX pourquoi ne pas envisager les LiveBindings ?
    Je chargeais une TStringGrid à partir d'un TFDJSONDatasets, et j'avais trouvé un tuto pile pour faire ça. Dans le problème actuel, je dois remplir une combobox, et je dois seulement y afficher les noms, en ayant toujours accès d'une manière ou d'une autre aux codes correspondants.
    quel est la différence avec la précédente application ?
    Je vais tenter ça, voir si ça convient à mes besoins. Cependant, j'aurai besoin par la suite de remplir d'autres types de champs, genre récupérer tous les champs d'une table, et mettre chaque champ dans un TEdit correspondant... Et de nouveau je n'ai aucune idée de comment faire ça .
    si c'est que ça un FillDisplayCustomFormat au niveau du lien fera l'affaire
    En définitive, cela ne me pose pas de problème d'apprendre de nouvelles choses (comme les LiveBindings), c'est juste que mes recherches étaient très brouillonnes et j'ai trouvé pas mal de moyens différents. J'aimerais juste avoir un seul "thème" à apprendre, pour éviter de perdre trop de temps. Et si c'est bien les LiveBindings qu'il me faut, je crois savoir que vous avez rédigé un article assez complet dessus J'aimerais juste être sûr d'où je dois aller chercher !
    Delphi 7 et 10.3.2
    IBExpert et Firebird 2.5

    Fervent partisan de la méthode du canard en plastique .

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par mistercactus Voir le message
    je crois savoir que vous avez rédigé un article assez complet dessus J'aimerais juste être sûr d'où je dois aller chercher !
    c'est le moins que l'on puisse dire voilà où se trouve mes "productions" https://serge-girard.developpez.com/

    pour ce qui est du combobox, ce n'est pas encore en ligne (quelques trucs à ajouter, pas encore de sources dispos et pas de correction orthographique) mais un lecteur indépendant est toujours source de questions

    P.S. s'il s'agit d'une application assez simple, je veux bien y jeter un coup d'œil, je ne vois pas ce que des FDJSONDatasets pourraient changer à l'utilisation des Livebindings
    Images attachées Images attachées
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 457
    Points : 24 870
    Points
    24 870
    Par défaut
    L'Approche LiveBindings avec ce ComboBox n'intéresse aussi
    Je suis très VCL avec la propriété Objects contenant des objets génériques pour contenir, ID ou Code + Libellé
    Cela va radicalement changer mes habitudes
    Idem passage d'un CS Oracle à un DataSnap + Oracle/MySQL, encore une approche différente

    Sergio, je me ferais un plaisir avec une collègue à étudier tes tutoriels et aussi à reprendre tes questions FMX que tu as mis sur le forum et auquel, je n'ai pas pu participer (en dehors de quelques idées saugrenues en lisant le code FMX qui est finalement la seule documentation disponible sur certains éléments)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Sergio, je me ferais un plaisir avec une collègue à étudier tes tutoriels et aussi à reprendre tes questions FMX que tu as mis sur le forum et auquel, je n'ai pas pu participer (en dehors de quelques idées saugrenues en lisant le code FMX qui est finalement la seule documentation disponible sur certains éléments)
    Ah, cela indiquerait donc que tu te lances dans FMX ?
    Je suis loin d'avoir tout abordé sur les LiveBindings, je viens de découvrir l'existence de l'unité System.Bindings.Helper et je me demande ...
    En tout cas toute suggestion sera bienvenue, je continue de galérer sur la création de composants intégrant Livebindings (en fait je me bagarre avec l'IDE pour le premier et donc l'autre est en StandBy)
    mais pour toute idée d'utilisation des LiveBindings je reste à l'écoute
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 457
    Points : 24 870
    Points
    24 870
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Ah, cela indiquerait donc que tu te lances dans FMX ?
    En fait, notre ERP Maison (qui couvre les achats, les appros, la logistique, la pré-compta et des fragments de RH et Paye) développé depuis 1999 en Delphi (5 puis XE2) va mourir à 21 ans.
    Cela sera remplacé par un ERP du marché dit plus "standard" c'est à dire SAP S/4 qui ne fait pas grand chose donc faut lui adjoindre le WMS REFLEX, PIM & SIM ContentServe et une myriade d'outil lié par un EAI / ESB ...
    Delphi c'est OUT OF DATE
    Notre DSI dit qu'il faut une technologie plus "Up to date" genre Java [comme notre Front POS qui est aussi vieux que son Back et c'est un Client lourd Java comme on en fait plus ].
    Je lui ai promis qu'en 2021 quand on fera ça en web avec du Java[script], c'est bon, il y a le mot Java dedans

    Résultat, cela ne couvre pas les mêmes fonctionnalités (certaines seront bien mieux couvertes et d'autres plus du tout)
    Et pas un seul partenaire n'ose assumer le rôle de notre outil d'étiquetage (juste 7-8 millions d'étiquette par an [chiffre de 2018] sur un peu moins de 10 sites mais ce qui fait peur c'est 3 fois plus dans cinq ans sur plus de 70 sites)
    Actuellement c'est petit programme Delphi XE2 utilisé en local (via CITRIX qui lui nous gère très bien le montage d'imprimante même depuis la Chine ou l'Inde) connecté en direct sur ORACLE avec plein de règle en dur
    Du coup, je passe transforme ce programme à une version Server utilisé via WebService (par REFLEX) via un Portail (FMX, CITRIX refonte en Web pour 2021) et le plus intéressant un Designer (FMX, CITRIX) et avec aucune règle en dur (tout sera au maximum déporté dans l'EAI, j'espère éviter de scripter de trucs)

    Oui tant qu'à garder Delphi autant passer en Tokyo 10.2 dont on a des licences qu'on utilise pas et passer en Multi-Tiers DataSnap et des IHM FMX

    Une demande d'impression via un outil tiers (REFLEX, SAP, Autres) qui se connecte sur le WS Centrale qui fera le Proxy vers le Data Blender et le Spooler Distant installé sur chaque poste
    Une demande d'impression via le Portail en FMX, ça sera bien plus direct grâce au montage des imprimantes dans les sessions TSE

    Je te laisse imaginer le délire :
    un utilisateur a son navigateur Internet (Poste Client) connecté sur Reflex WEB (un serveur quelque part dans un Datacenter) invoque le WS d'étiquetage (un serveur quelqu part dans un Datacenter) qui lui doit récupérer les formats (Oracle et quand l'ExaData ne sera plus là, ça sera MySQL) et compléter les données via un WS de l'EAI (un serveur quelque part dans un autre Datacenter) qui lui même devra consulter SAP et sa base HANA (un serveur quelque part dans un autre Datacenter) pour ensuite imprimer des milliers d'étiquette à l'heure en simultané sur plusieurs imprimantes (une par format de papier) du poste Client où était ouvert la page Web Reflex

    On verra en Avril quand ma collègue attaquera le Designer (une sorte de mini Report Builder) où l'on va profiter un max des coordonnées flottantes de FMX et du ScaledLayout pour gérer le Zoom

    Moi, je m'attaque à la création d'une sorte de Spooler Distant
    je vais voir ce qui existe dans Windows et comment se comporte l'impression en thread sur plusieurs imprimantes en simultanés depuis un seul poste
    Si ça craint, le serveur envoi ce qu'il faut au Spooler Distant et l'impression est en faite en local sur le poste

    Notre Admin Réseau en Chef (qui ne connait que SAP) ne veut pas qu'un serveur connaissent les 50-70 imprimantes SATO du Parc qui montera bien à 500 dans quelques années, entre la France, l'Italie, l'Allemagne, la Chine, L'Inde et un tas d'autres pays à l'avenir
    Evidemment car cela serait à son équipe de gérer le recensement des imprimantes à travers le Monde

    Du coup, j'ai proposé de gérer le parc des imprimantes dans mon outil (la petite base MySQL fera bien le boulot de paramétrage et droits, le métier aura son écran dans le portail pour gérer ses imprimantes, moi pas question non plus que je gère le déploiement)




    Et comme on va me sortir du QR Code mais surtout de la RFID,
    je me prépare à gérer les SATO M84 via le bon vieux Canvas de Delphi (fonctionne top depuis 20ans ) mais les imprimantes RFID en ZPL, EPL, DPL (commande d'imprimante que ne supporte pas nos vieilles SATO M84 contrairement à nos rares SATO CL4NX)

    Pour le moment avec ma collègue, on s'est amusé avec le Canvas pour dessiner des Carrés (Gobelin) qui font l'aller-retour depuis une Ellipse(Fontaine) et Carré (Robinet) pour arroser le jardin du Grand Sorcier Prospero
    Un exercice du prof du petit frère de ma collègue, on a pendu un truc tout merdique avec des listes pour trouver les collisions à la fontaine des Gobelins ne pouvant pas utiliser un robinet en même temps
    Pourtant je suis sûr qu'il existe un truc mathématique avec les fonctions affines T = (P + 1) * r - 1 (avec T, P et r en nombre entier) pour trouver la collision entre (P1 + 1) * r - 1 = (P2 + 1) * r - 1 (je trouve zéro quand je résoud l'équation, c'est con, c'est le point de départ, je suis au courant, je voudrais quand ils se croisent sur 0 < r <= 14400
    Oups, je m'écarte du sujet ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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

Discussions similaires

  1. Remplir une base de données MySql depuis ASP.NET
    Par Tsiorii dans le forum ASP.NET
    Réponses: 3
    Dernier message: 16/09/2014, 19h01
  2. [Delphi - Accuracer] Comment remplir une base de données ?
    Par altaruk dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/12/2007, 15h44
  3. Comment remplir une base de donnée Access ?
    Par k_boy dans le forum Bases de données
    Réponses: 1
    Dernier message: 13/12/2007, 22h56
  4. Remplir une base de donnée
    Par nistelsof dans le forum JDBC
    Réponses: 1
    Dernier message: 30/05/2007, 23h15
  5. Réponses: 3
    Dernier message: 29/03/2006, 14h23

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