IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

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.

SommaireBases de données (7)
précédent sommaire suivant
 

Avec les propriétes MasterSource et MasterField.

Mis à jour le 21 août 2009 chris37

Il faut utiliser autant de composants Tdbf qu'il y a de tables.

Mis à jour le 21 août 2009 chris37

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.

Mis à jour le 21 août 2009 chris37

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
Si tout est OK on fait un commit :
Code delphi : Sélectionner tout
SQLTransaction1.Commit;//Ecriture physique des données
Sinon, en cas d'erreur, on fait un rollback :
Code delphi : Sélectionner tout
SQLTransaction1.Rollback; //On annule toutes les modifications effectuées entre le start et le Rollback
Et, dans ce dernier cas, on retrouve les données initiales de ta table non modifiées.

Mis à jour le 21 août 2009 chris37

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);
Exemple :
Code delphi : Sélectionner tout
1
2
3
4
Procedure Tfrmlzexemple.DBNavigator1BeforeAction (Sender : TObject; Button: TDBNavButtonType); 
Begin 
  { Test de bouton } 
End;

Mis à jour le 21 août 2009 chris37

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.

Mis à jour le 25 août 2009 chris37

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.

Mis à jour le 7 juin 2017 Alcatîz

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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.