Alimenter TreeView depuis une base de données
Publié : dim. 12/avr./2020 17:58
Bonjour,
Nouveau sur le forum et débutant en PUREBASIC, j'aurai besoin de vos conseils.
J'ai une BDD Oracle avec 2 tables.
Table1 : liste des applications
Table2 : liste des tables de l'application qui référence la table 1 par un code.
Je souhaite créer un treeview qui me permette d'avoir la liste des applis que je peux déplier pour avoir la liste des tables que contient l'application.
app1
table1
table1
app2
table1
table2
table3
Pas de soucis pour me connecter à Oracle avec ODBC par contre je bute sur la mise en œuvre.
J'ai fait quelques essais et j'arrive bien a alimenter le 1er niveau du treeview je ne vois pas comment ajouter le second (je ne peux pas utiliser le même DBID).
De plus, j'aimerai quand le clique sur une appli ou une table dans le treeview, afficher le reste des information des applis ou table.
Merci de vos précieux conseils.
Nouveau sur le forum et débutant en PUREBASIC, j'aurai besoin de vos conseils.
J'ai une BDD Oracle avec 2 tables.
Table1 : liste des applications
Table2 : liste des tables de l'application qui référence la table 1 par un code.
Je souhaite créer un treeview qui me permette d'avoir la liste des applis que je peux déplier pour avoir la liste des tables que contient l'application.
app1
table1
table1
app2
table1
table2
table3
Pas de soucis pour me connecter à Oracle avec ODBC par contre je bute sur la mise en œuvre.
J'ai fait quelques essais et j'arrive bien a alimenter le 1er niveau du treeview je ne vois pas comment ajouter le second (je ne peux pas utiliser le même DBID).
De plus, j'aimerai quand le clique sur une appli ou une table dans le treeview, afficher le reste des information des applis ou table.
Merci de vos précieux conseils.
Code : Tout sélectionner
UseODBCDatabase()
#DBID = 0
#TREE1 = 1
If Not OpenDatabase(#DBID, "DW_CARTO", "XJKDSJDQMFK", "XJKDSJDQMFK")
MessageRequester("BDD","PB COnnexion " + DatabaseError(),#PB_MessageRequester_Warning)
EndIf
reqApp.s = "Select code_app, lib_app from carto_application"
reqEnt.s = "Select code_entite, nom_entite from carto_entite"+
" where fk_code_app = "+codeApp
If Not DatabaseQuery(#DBID, reqApp)
MessageRequester("Sql Error",reqApp+Chr(10)+DatabaseError(),#PB_MessageRequester_Error)
EndIf
If OpenWindow(0, 0, 0, 800, 600, "Carto", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TreeGadget(#TREE1, 10, 10, 300, 580)
If DatabaseQuery(#DBID, reqApp)
While NextDatabaseRow(#DBID)
AddGadgetItem(#TREE1, -1, GetDatabaseString(#DBID,DatabaseColumnIndex(#DBID,"LIB_APP")),0,0)
Wend
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Debug #DBID
CloseDatabase(#DBID)