Creer tree à partir de firebird

fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 décembre 2009 - 2 mars 2009 à 21:44
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 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


LEVEL qui va de zero a 6 dans cette base

Merci,

23 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
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.

cantador
0
fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 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)

Merci pour votre aide
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
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 ?

cantador
0
fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
3 mars 2009 à 14:17
houlà, ya du taff là dessus !
ce n'est plus une question, c'est un chantier...

Enfin, donne quand même la tête de deux ou trois enregistrement de la table MAIN qu'on voit où tu as mis les pieds..

cantador
0
fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 décembre 2009
3 mars 2009 à 15:01
voici un lien vers ma base: http://rapidshare.com/files/204543451/PROJET.FDB.html
et vers 2 vue:  http://rapidshare.com/files/204804198/vues.rar.html
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /><link rel="File-List" href="file:///C:%5CUsers%5Cmehdi%5CAppData%5CLocal%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><link rel="Edit-Time-Data" href="file:///C:%5CUsers%5Cmehdi%5CAppData%5CLocal%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso" /><!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
--></style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tableau Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]--><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:453.75pt;
height:319.5pt'>
<v:imagedata src="file:///C:\Users\mehdi\AppData\Local\Temp\msohtml1\01\clip_image001.jpg"
o:title="vue1"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
3 mars 2009 à 15:30
Je verrais ce soir car j'ai un souci de téléchargement...
@+

cantador
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
3 mars 2009 à 19:06
heu, je veux bien aider mais je veux pas payer en plus..

cantador
0
fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 décembre 2009
3 mars 2009 à 19:22
le téléchargement n'est pas payant. il faut cliquer sur FREE USER
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
3 mars 2009 à 19:46
j'ai fait mais ça marche pas..

cantador
0
fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 décembre 2009
3 mars 2009 à 20:04
apres avoir cliquer sur FREE USER il y aura un décompte de 30 seconde puis vous pourrez cliquer sur download.
je ne connais pas d'autres moyen
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
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..

je continue..

cantador
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
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é..

je te laisse le plus facile

cantador
0
fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 décembre 2009
3 mars 2009 à 22:47
pourriez vous m'aider a écrire le code car je n'ai pas une grande notion en delphi. et je ne sais pas comment lié la table MAIN a la table BODY

Merci pour votre aide
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
4 mars 2009 à 10:32
et je ne sais pas comment lié la table MAIN a la table BODY


Moi non plus, car les codes (curieusement indiquées dans le texte) n'ont pas de correspondance dans la table MAIN


Il manque quelque chose...

C'est un projet ou un exercice ?

cantador
0
fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 décembre 2009
4 mars 2009 à 12:40
c'est un projet
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
4 mars 2009 à 14:04
Si tu n'as pas un minimum de connaissances en programmation, je me demande comment tu pourrais réaliser ou même appréhender un truc pareil ?

cantador
0
fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 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
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
4 mars 2009 à 17:12
Pourquoi le faire dans un langage que tu ne connais pas ?

cantador
0
fauxcon Messages postés 12 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 24 décembre 2009
9 mars 2009 à 14:59
Bonjour,

comment peut-on afficher un BLOB contenue dans une table dans un éditeur de texte??
0
Rejoignez-nous