Ahhhh, mais attention !!! un Query, c'est une requête !!!
Tu ne peux pas modifier directement les enregistrement comme avec une
table... Je crois bien qu'il y a une méthode avec la propriété UpdateObject du
TQuery. On m'avait montré une fois mais je ne m'en rappelle plus... Je
préfère utiliser des cadres de saisie plutôt qu'une saisie directement
dans la grille (mais bon, c'est mon choix...). Essaie de faire une
recherche de ce côté là
Avec un composant MyTable (TTable), Tu peux faire if not MyTable.Exists then MyTable.CreateTable; (en ayant défini les databasename, tablename et les fields...)
- de créer la table en sql avec un TQuery :
DatabaseName sera l'emplacement de ta table,
Dans le SQL, tu mets un truc du genre :
Create table Test (ID Integer, NOM Varchar(30));
et tu appelles ExecSQL; (surtout pas Open -> sinon tu as "Fonctionnalité non supporté" ou un truc du genre).
Et là, miracle, tu as une table Test.DB qui se créée toute seule !
(Remarque, tu n'as peut être pas besoin de poser un composant sur la
form pour ta table, tu peux peut-être créer ton query dynamiquement ?)
Le query c'est super pour faire une requête (i.e. chercher un ensemble
d'enregistrement à partir d'éléments de filtre) et l'afficher ou non
dans un dbgrid.
Maintenant, si tu veux afficher le contenu entier d'une table (ou une partie en utilisant la propriété filter - en n'oubliant pas dans ce cas là de passer également la propriété filtered à true), et pouvoir modifier les données, soit tu utilises un composant TTable, soit tu fouilles du côté du UpdateObject...