Treeview aus MSSQL Server

  • Hallo Autoitler,

    hat jemand ein beispiel wie ich aus eine mssql Datenbank einen Treeview befüllen kann.

    Leider habe all meine versuche bis dato zu keinem Ergebniss geführt. Das ist mein letzter Versuch.


    Func __KatRead()

    Local $idRoot = GUICtrlCreateTreeViewItem("Root", $HauptGUI_TreeView_01)

    $sQueryKate = "select * from [dbo].[" & $FAQKat & "]"

    If $debug = "99" Then

    ConsoleWrite("$sQueryKate --" & $sQueryKate & @CRLF)

    FileWriteLine(@ScriptDir & "\SQLDebug.log", @YEAR & '-' & @MON & '-' & @MDAY & " " & @HOUR & ':' & @MIN & ':' & @SEC & " $sQueryKategoAnz --" & $sQueryKate & @CRLF)

    EndIf

    $SQLQuery = _MSSQL_Query($sqlCon, $sQueryKate)

    $aSQLQueryErgebnis = $SQLQuery.GetRows

    For $i = 0 To UBound($aSQLQueryErgebnis) - 1

    $Katnum = $aSQLQueryErgebnis[$i][1]

    ConsoleWrite("Kat name und Variable 01 " & $Katnum & " " & $aSQLQueryErgebnis[$i][1] & @CRLF)

    $aSQLQueryErgebnis[$i][2] = GUICtrlCreateTreeViewItem($aSQLQueryErgebnis[$i][1], $idRoot)

    GUICtrlSetColor($aSQLQueryErgebnis[$i][1], 0x0000C0)

    ConsoleWrite("Kat name und Variable 02 " & $Katnum & " " & $aSQLQueryErgebnis[$i][1] & @CRLF)

    Next

    ;## Kategorieen befüllen

    $sQueryDaten = "select * from [dbo].[" & $FAQDaten & "]"

    If $debug = "99" Then

    ConsoleWrite("$sQueryDaten --" & $sQueryDaten & @CRLF)

    FileWriteLine(@ScriptDir & "\SQLDebug.log", @YEAR & '-' & @MON & '-' & @MDAY & " " & @HOUR & ':' & @MIN & ':' & @SEC & " $sQueryKategoAnz --" & $sQueryDaten & @CRLF)

    EndIf

    $SQLQuery = _MSSQL_Query($sqlCon, $sQueryDaten)

    $SQLQueryErgebnisDaten = $SQLQuery.GetRows

    For $i = 0 To UBound($SQLQueryErgebnisDaten) - 1

    GUICtrlCreateTreeViewItem($SQLQueryErgebnisDaten[$i][3], $SQLQueryErgebnisDaten[$i][1])

    Next

    EndFunc ;==>__KatRead


    die Kategorieen und die Daten stehen in unterschiedlichen tabellen.

    Und bevor jetzt einer schreibt googl hald mal das habe ich schon hinter mir leider hab ich nichts gefunden zu diesem Thema.

    Gruss McBaldrian

    Solange
    du den anderen sein Anderssein nicht verzeihen kannst, bist du noch weit ab vom
    Wege der Weisheit.

  • Schau Dir mal dieses Skript an. Das habe ich verwendet und aufgebohrt um die Active Directory OU Struktur anzuzeigen.

    Die Datei sieht wie folgt aus:


    n-Leerzeichen#Im TreeView anzuzeigender Text

    n gibt dabei die Ebene im TreeView an wo der Eintrag eingehängt werden soll.

  • Hallo,

    für's Verständnis:

    Du hast zwei Tabellen, eine mit Kategorienamen und eine mit Kategoriedaten. Die Kategoriedaten sollen im TreeView den Kategorienamen zugeordnet werden. Wie ist denn die Beziehung zwischen Namen und Daten definiert?

    In Deinem Beispiel arbeitest Du mit zwei getrennten und damit beziehungslosen Ergebnisarrays und versuchst, die nacheinander ins TreeView zu stellen. Es ist vielleicht besser, während der Abarbeitung des Namensarrays die zughörigen Daten abzufragen?

  • in beiden Tabellen gibt es eine Spalte die "katid" heisst und da stzeht die Kategorie drin. Ja ich habe das schon mal versucht in einem Rutsch zu machen leider auch ohne erfolg.

    Teoretisch bräuchte ich nur eine Tabelle aber auch das habe ich nicht hinbekommen.

    Solange
    du den anderen sein Anderssein nicht verzeihen kannst, bist du noch weit ab vom
    Wege der Weisheit.

  • Ok, eine naheliegende und einfache Möglichkeit wäre diese:

    1, Tabelle $FAQKat einlesen.

    2. Das Ergebnisarray abarbeiten und aus der Tabelle $FAQDaten die Daten für die jeweilige katid auslesen.

    Code
    $sQueryDaten = "select * from [dbo].[" & $FAQDaten & "] WHERE katid = '" & $KatID & "'"

    So kanst Du die Daten den Namen zuordnen.

    Wenn das zu lange dauert, gibt es noch viele Alternativen.