Bonjour Gilles,
Citation:
Envoyé par
ApproxDev
FireDac et LiveBindings coïncident. Je te rappelle qu'autrefois, et encore dans Lazarus, l'association avec le dbGrid était liée au connecteur et faisait partie intégrante (et distribuée) de l'accès à la BDD.
Firedac et Livebindings ne coïncident pas du moins de mon point de vue. Pour preuve je pourrais faire des programmes avec d'autres connecteurs ADO, IBExpress voire même ZEODBO ou même un simple cds (xml ou autre format) et utiliser des Livebindings. D'ailleurs si mes souvenirs sont corrects Firedac (AnyDac en fait) est apparu dans les packages avec XE4 alors que FMX et les LiveBindings sont apparus avec XE2 ? (faudrait que je retrouve cette version pour valider)
Pour "prouver" ce fait je pourrai te montrer ce que je viens de vérifier avec la version Starter sur laquelle, on est d'accord, il n'y a pas de Firedac ni de connecteurs aux BDD (sauf cds). J'ai installé zeosdbo et sur un projet FMX un Zconnexion,ZQuery,un TGrid. L'ajout d'un BindingsList (contenant un LinkGridToDataSource) et un TGrid me permet de visualiser ma requête sans soucis. tu noteras au passage que je n'ai même pas posé de Datasource ni même de Transaction, d'ailleurs dans ton schéma "Firedac" ces deux derniers ne sont pas utiles pour un schéma de base car :
- il y a une transaction par défaut intégrée (un FDTransaction c'est mieux si l'on veut modifier le comportement par défaut quoique s'il est le même pour toutes sources de données ...)
- un DataSource n'est pas nécessaire (sauf à utiliser un schéma plus compliqué maitre détail)
Pour "combler" la flèche rouge avec ? du schéma c'est le BindingsList avec un LinkGridToDataSource
Bon, je le concède, avec une version starter c'est pas évident et c'est beaucoup plus (trop?) facile avec le concepteur de liens.
Citation:
VCL je ne pratique jamais. Je viens de voir en effet qu'il existait une dbGrib avec une bonne vieille propriété DataSource.
je comprends, puisque tu fais des programmes FMX (traduction : multi plateforme), que tu n'ai pas regardé mais le bon vieux dev windows VCL a toutes les anciennes fonctionnalités, le hic c'est que VCL n'est pas portable
Citation:
Est-ce la partie connexion LiveBindings de FireDac, ou celle de TGrid ? Ce n'est pas performant.
c'est bien la partie connexion des Livebindings au TGrid (soit LinkGridToDataSource déjà cité)
Citation:
Tu défends FireDac avec l'excuse que TGrid ne fait pas partie de FireDac ? Intenable pour l'instant, en première considération, selon moi parce que d'un côté du LiveBindings il y a une terminaison (?) sur le composant FireDac.
l'exemple avec les zeosdbo (version 7.2.1 juste retouchée par mes soins, les packages, pour l'installation vers Tokyo) confirme ce fait il me semble ?
Citation:
Je n'ai pas vu la démonstration, ne l'ai pas testée.
j'ai indiqué le lien dans la discussion ici
Citation:
Par contre, dans le cas que j'évoquais avec Der§en, ce n'est pas le composant qui décide quand (à quelle fréquence) il envoie et comment il réalise les paquets de données.
ce n'est pas le cas de ce que j'évoque, c'est bien toi (le programme) qui décide de l'envoi donc aussi proche que possible du temps réel. Cela n'a rien à voir avec une taille de paquets comme pour la lecture.
en gros le principe est : j'ai une requête paramétrée type INSERT INTO TABLE(champ1,champ2) VALUES (:param1,:param2)au lieu de faire un execSQL par ligne, on rempli un tableau de paramètres et on envoi un seul Execute
par exemple pour ton ensemble de capteurs (6*6 donc 36 ?) on rempli un tableau de 36 paramètres et on fait un seul envoi à la BDD.
De mon expérience avec Firebird, cela revient à faire un SQL avec un EXECUTE BLOCK contenant (selon l'exemple) 36 INSERT
Limite de ARRAY DML il faut que le SGBD permette ce type de manip, et dans le cas de Firebird la taille maximum du SQL
Citation:
N'empêche qu'en "émission", UniDac sous FMX fait beaucoup mieux sur une base mariaDB.
Unidac fait mieux car si j'ai bien compris Unidac intégre le moteur (la DLL cliente pour les SGBD Oracle, MySQL, PostgreSQL, SQLite et NexusDB), alors que Firedac n'intègre que SQLite du coup, l'appel systématique a une DLL cliente pêche. Je me serai certainement tourné vers Unidac s'il avait intégré le moteur Interbase/Firebird