FAQ LazarusConsultez toutes les FAQ
Nombre d'auteurs : 17, nombre de questions : 88, dernière mise à jour : 31 décembre 2023 Ajouter une question
Bienvenue dans la FAQ Lazarus.
Cette base de connaissances a essentiellement été construite avec le contenu de l'ancien forum officiel francophone dédié à Lazarus. Elle sera régulièrement alimentée avec le contenu du forum actuel. Les aspects propres au langage Pascal lui-même se trouvent dans la FAQ Pascal.
Cette FAQ collaborative est avant tout la vôtre ! Pour participer à son développement, vous pouvez directement y ajouter de nouvelles questions/réponses ou encore poster des propositions de corrections sur le forum Contribuez.
Bonne lecture !
L'équipe Pascal.
- Dans une base de données avec certaines tables liées entre elles, comment créer les liaisons entre ces tables ?
- Dans l'interface d'une application, si on veut faire appel à plusieurs tables, combien doit-on utiliser de composants Tdbf ?
- Peut-on faire des requêtes SQL sur des composants Tdbf ?
- A quoi sert le composant TSQLTransaction ?
- Comment tester l'action sur un des boutons de DBNavigator ?
- Comment utiliser les types Date et TDateTime sous SQLite ?
- Comment faire en sorte que les composants SQLdb supportent l'UTF8 ?
Non. Si l'on souhaite utiliser des requêtes, il est préférable de changer de base de données et de travailler, par exemple, avec SQLite.
Le composant TSQLTransaction permet de créer sorte de mémoire virtuelle sur la base de donnée à un moment donné. Exemple : lors d'une phase de mise à jours de données, si on doit modifier plusieurs enregistrements sur une ou plusieurs tables. Si, pendant le traitement, il arrive un problème, alors on aura la possibilité de faire machine arrière, c'est à dire un rollback.
On démarre une transaction :
Code delphi : | Sélectionner tout |
SQLTransaction1.StartTransaction; //Début
Code delphi : | Sélectionner tout |
SQLTransaction1.Commit;//Ecriture physique des données
Code delphi : | Sélectionner tout |
SQLTransaction1.Rollback; //On annule toutes les modifications effectuées entre le start et le Rollback
Utiliser l'événement BeforeAction du DBNavigator et tester le type de bouton renvoyé :
Code delphi : | Sélectionner tout |
TDBNavButtonType = (nbFirst,nbPrior,nbNext,nbLast,nbInsert,nbDelete,nbEdit,nbPost,nbCancel,nbRefresh);
Code delphi : | Sélectionner tout |
1 2 3 4 | Procedure Tfrmlzexemple.DBNavigator1BeforeAction (Sender : TObject; Button: TDBNavButtonType); Begin { Test de bouton } End; |
Par défaut, les types Date et DateTime n'existent pas sous Sqlite.
Si vous déclarez une rubrique avec un de ces types, ça marchera correctement avec les browsers du marché car ils réinterprètent bien le transtypage. Avec les composants ZEOS, pas de problème non plus, TDateTime dans le code et idem dans la base et ça fonctionne correctement. Test effectué avec une DBGrid native.
Par contre, avec le composant TSqliteDataset3 natif, çà coince car il stocke directement la valeur numérique correspondant à la date dans le champ (en réalité un string) de la base de données (normal, direz-vous pour un type Date). Si on s'arrête la çà fonctionne. Mais là ou çà bloque, c'est que les rubriques dates deviennent de facto illisibles par les autres composants comme ZEOS ou les autres browsers...
Donc faites attention si votre base doit être accessible par différents moyens. La meilleure solution pour Sqlite avec Lazarus est d'utiliser ZEOS pour avoir une compatibilité correcte avec les autres gestionnaires.
La solution est toute simple : il suffit d'assigner la valeur "UTF8" à la propriété CharSet du connecteur.
Pour MySQL, ce connecteur est de type TMySQLxxConnection, pour Oracle TOracleConnection, pour SQLite TSQLite3Connection, etc.
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.