Toutes les données proviennent d'une TList. Cette TList est une structure Record (en-tête de l'entraînement et données entraînement)
Dans ma table Access, j'ai 3 tables (athlètes, entraînement et temps)
Lorsque l'utilisateur descend les données depuis son appareil, cela alimente ma TList.
J'ajoute un entraînement dans la table entraînement avec une reqûete SQL qui insère l'entête entraînement de la TList.
Dans cette entête de l'entraînement (dans BD) des données doivent être notifiées par l'utilisateur c'est pourquoi j'effectue un update de différent champ de la Table entrainement (procedure UpdateBD).
J'alimente ensuite ma table Temps (jointure avec Table entraînement) avec procedure InsertBDTemps
// Ajout entête entraînement
INSERT INTO T_ENTRAINEMENT (entr_vers_chip, entr_no_dossard, entr_nb_lap, entr_date, entr_heure, entr_tps_tot, entr_assiste, entr_tps_assiste, entr_temps_arret_auto, entr_tps_safety, entr_nb_lap_radio, entr_distance, entr_compensation, entr_mode, entr_tps_zone5, entr_tps_zone4, entr_tps_zone3, entr_tps_zone2, entr_tps_zone1, entr_poids,entr_fcrepos, entr_athle_num)VALUES (:ParamVersChip,:ParamDossard,:ParamNbLap,:ParamDate,:ParamHeure,:ParamTempsTot,:ParamAssiste,:ParamTempsAssiste,:ParamArretAuto,:ParamSafety,:ParamRadio,:ParamDistance,:ParamComp,:ParamMode,:ParamZone5,:ParamZone4,:ParamZone3,:ParamZone2,:ParamZone1,:ParamPoids,:ParamFCrepos,:ParamAthlenum);
// Mise à jour base de données
UpdateBD;
UPDATE T_ENTRAINEMENT SET entr_disc_nom=:ParamNomDisc,entr_comment=:ParamComment,entr_compensation=:ParamCompensation,entr_poids=:ParamPoids,entr_fcrepos=:ParamFcRepos
WHERE entr_num=:ParamNum;
// Ajout des données dans la table Temps
for i := 1 to FList.Count-1 do
begin
ptr_lap := FList.Items[i];
InsertTempsBD;
end; // end for
Insert Into T_TEMPS
(temps_lap, temps_comp,temps_cardio, temps_entr_num, temps_type, temps_no, temps_fc)
values(:ParamTempsLap,:ParamTempsComp,:ParamCardio,:ParamEntrNum,:ParamTempsType,:ParamTempsNo,:ParamTempsFC);