SystÚme de Gestion de Production · Delphi + Oracle
Application de suivi de production de flacons en verre pour une verrerie industrielle. Gestion des commandes, lots de fabrication, contrÎle qualité et stocks.
Saverglass fabrique des flacons de luxe (parfums, spiritueux, vins). Chaque flacon passe par : Conception â Moule â Fusion â Formage â ContrĂŽle qualitĂ© â ExpĂ©dition.
Delphi (Object Pascal) est un langage orientĂ© objet basĂ© sur Pascal. Tout tourne autour des Forms (fenĂȘtres) et des composants visuels.
En Delphi, le TDataModule est une form invisible qui regroupe tous les composants d'accÚs aux données. C'est le pattern DAL standard de Delphi.
Le TDataSource fait le pont entre un TDataSet (query) et les composants visuels DB-aware :
Questions typiques pour un poste Delphi/Oracle chez Saverglass.
1. Qu'est-ce qu'un TDataModule en Delphi ?
DataModule1.
2. Quelle est la différence entre .Post et .ApplyUpdates en FireDAC ?
3. Pourquoi utilise-t-on des paramÚtres liés (:parametre) au lieu de concaténer du SQL ?
4. Dans Oracle, qu'est-ce qu'une séquence (SEQUENCE) ?
SEQ.NEXTVAL). Contrairement Ă l'IDENTITY de SQL Server, elle est indĂ©pendante de toute table â plusieurs tables peuvent partager une mĂȘme sĂ©quence. UtilisĂ©e classiquement dans un TRIGGER BEFORE INSERT pour simuler l'auto-incrĂ©ment.
5. Quel composant Delphi fait le lien entre un TFDQuery et un TDBGrid ?
TFDQuery â TDataSource â TDBGrid/TDBEdit/TDBLabelâŠ. Quand le curseur se dĂ©place dans la query, tous les composants DB-aware liĂ©s au mĂȘme TDataSource se mettent Ă jour automatiquement. C'est le pattern Observer de Delphi.
6. Qu'est-ce que RETURNING ... INTO en Oracle SQL ?
INSERT INTO ... RETURNING COL INTO :var permet de rĂ©cupĂ©rer l'ID gĂ©nĂ©rĂ© (via trigger/sĂ©quence) immĂ©diatement aprĂšs l'insertion, sans faire un SELECT MAX() ou CURRVAL ensuite â ce qui serait dangereux en accĂšs concurrent. TrĂšs utilisĂ© en Delphi avec FireDAC : qry.ParamByName('newid').ParamType := ptOutput.
"J'utilise un DataModule dédié comme couche DAL, avec des composants TFDQuery paramétrés. Pour la logique métier complexe, je délÚgue à des packages PL/SQL cÎté Oracle. Tous les accÚs passent par des paramÚtres liés pour la sécurité et la performance."
"Via TFDTransaction avec StartTransaction / Commit / Rollback dans un bloc try/except. Pour les opérations critiques (ex: créer un lot + mise à jour stock), je regroupe tout en une seule transaction Oracle pour garantir la cohérence ACID."
"TFDTable mappe directement une table Oracle entiÚre, rapide à configurer. TFDQuery est plus flexible : SQL personnalisé, jointures, filtres dynamiques. En production j'utilise surtout TFDQuery pour le contrÎle et la performance."
"Je commence par EXPLAIN PLAN pour voir le plan d'exécution. Je vérifie les index manquants, les full table scans inutiles. Je collabore avec le DBA Oracle pour créer les index adaptés et, si nécessaire, je réécris la logique en PL/SQL pour éviter les appels répétés depuis Delphi."