fauxcon
Messages postés12Date d'inscriptionlundi 16 février 2009StatutMembreDernière intervention24 décembre 2009
-
2 mars 2009 à 21:44
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
9 mars 2009 à 21:26
Bonjour,
j'ai une base de données FIREBIRD et je n'arrive pas à charger un treeview car je ne sais pas utiliser le composant UIB et je n'ai pas la moindre idée de comment procéder.Si quelqu'un sait ou a deja reussi à le faire qu'il m'aide
la base contient plusieurs tables dont la table Main qui a 7 attribut
PK_id( clé primaire non nulle)
SUBJECT celui que je veux afficher dans l'arbre
THREAD la premiere racine a pour num THREAD=1 et tous ses enfants ont
pour num PARENT=1 la deuxieme racine a pour num THREAD le num du
dernier PARENT+2
PARENT chaque fils a pour num PARENT le PK_id de ce dernier
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 2 mars 2009 à 22:06
bonsoir,
un petit début :
Ta question est beaucoup trop imprécise...
perso, je n'utilise pas UIB mais il s'agit d'un pakage de 3 compos :
Un Tdatabase, un TTransaction et un TQuery
Donc c'est la même utilisation que les autres..(ADO etc..)
Le souci de l'importation du TreeView est plus délicate car si ce dernier comporte plusieurs niveaux d'arborescence, il faut savoir où tu dois stocker les données et comment.
fauxcon
Messages postés12Date d'inscriptionlundi 16 février 2009StatutMembreDernière intervention24 décembre 2009 3 mars 2009 à 02:06
Bonsoir,
J'utilise UIB car d'après les forums c'est l'un des moyens pour acceder à une base FIREBIRD, vu le manque de documentation sur ces composants, je ne sais pas comment pouvoir travailler sur ma base. D'un autre coté je cherche un code pour génerer un arbre à partir d'un fichier .fdb. les données sont assez grandes (plus de 1000 noeuds)
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 3 mars 2009 à 12:00
En fait, le souci n'est pas le composant, mais bien plutôt l'archirecture de la base..
je te conseil dans un premier temps afin d'y voir clair, de faire une modélisation à l'envers à partir du fichier de la base de données
(Opération : Reverse Engineer)
ce qui te permettra de voir les liaisons entre les tables..
et autre point non négligeable :
Le treeview est-il le reflet du modèle ?
fauxcon
Messages postés12Date d'inscriptionlundi 16 février 2009StatutMembreDernière intervention24 décembre 2009 3 mars 2009 à 12:37
Il y a la table MAIN qui contient l'arborescence et la table CATALOG qui contient le texte attaché à chaque noeud.
Le but est de créer une application comme SOFTNOTE
slt
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 3 mars 2009 à 20:57
bon, j'ai le compteur et j'ai la base mais pas les vues..
Déjà, aucune relation entre les tables...
les textes sont stockés dans Body dans un blob au format rtf..
la table Main c'est elle qui contient les paramètres de l'arborescence..
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 3 mars 2009 à 22:00
En fait, il y a une relation sur elle-même dans Main...
pour comprendre, il faut faire un tri croissant sur Thread
ex: 1087
1087 TECHNIQUES niveau 0
1089 LA FEDERATION - LA COMPETITION MOUCHE niveau 1
et les fils : niveau 2
1090 Championnat d' Europe
1091 Championnat de France
1092 Championnat du monde
1093 La Fédération Fichier
1094 Les compétitions Fichier
etc.etc.
les textes dans body sont stockés comme ça :
Le Rhône, Père des eaux (41, 92) mais (41,92) ?
Pour retrouver l'arborescence de Main, je ne vois qu'une boucle de lecture de la table avec un query en n'oubliant l'order by Thread dans le sql, puis
un bon :
Whilenot Query1.Eof do
begin
// tests
// création de l'arborescence
Query1.next;
end;
pas simple du tout d'autant que tu as 6 niveaux possibles et un autre tri sur parent par exemple mélange l'ordre des textes..
et il faut pourtant néanmoins retrouver à chaque fois tous les parents identiques.
ex :
1122 EAU DOUCE Fichier INDEX PÊCHE MOUCHE 1997-2008 00:00:00 1087 1121 3
mais il y en a un autre !
1147 MER Fichier INDEX PÊCHE MOUCHE 1997-2008 00:00:00 1087 1121 3
donc, il va falloir faire des lookup..(pas de locate sinon le pointeur va bouger..)
Voilà un rapide décorticage que tu avais peut-être déjà trouvé..
fauxcon
Messages postés12Date d'inscriptionlundi 16 février 2009StatutMembreDernière intervention24 décembre 2009 4 mars 2009 à 16:44
Si je sais programmer mais je n'ai jamais travailler sous delphi, et je ne connais pas les méthodes existantes dans le treeview ni si le query ajit comme un cursor ou pas