Hallo Delphianer,
(Ich nutze IB 6.0 und D5 c/s)
ich muss in einem StringGrid eine Matrix abbilden. derzeit läuft es wie folgt:
1. select auf die Daten (USer) der Spalte (id-x)
2. select auf die Daten (Rechte) der Zeile (id-y)
3. Durchlauf der Matrix (Verknüpfung der User und deren Rechten)und lesen der einzelnen Funktionen (Leer, "X" oder sonstige Zeichen)
for i := 1 bis anzahl spalte_User
for y := 1 bis anzahl zeile_Rechte
select aus funktion f where f.x = spalte_user.id-x and y=zeile_Rechte.id-y
den Inhalt aus Funktion dann im StringGrid an der Position i,y eintragen.
Bei einer Matrix von ca.150 Spalten und ca.6000 Zeilen sind das 900.000 Zugriffe. Das bringt jeden Server in die Knie!!! Sowas sollte man sicherlich nicht machen. *g* zumal der sichtbare Bereich vielleicht nur 50 * 25 = 1250 zellen beträgt.
Wie kann man den Zugriff begrenzen? Vorschläge?
Ich dachte da einen Cursor, der nur die Spalten/Zeilen lädt, die auch auf dem Bildschirm sichtbar sind.
Ich bin für jede idee dankbar. Die Matrix muss dann editierbar sein und die Änderungen werden entsprechend gespeichert.
Kopfrauchenden Gruß
Axel
(Ich nutze IB 6.0 und D5 c/s)
ich muss in einem StringGrid eine Matrix abbilden. derzeit läuft es wie folgt:
1. select auf die Daten (USer) der Spalte (id-x)
2. select auf die Daten (Rechte) der Zeile (id-y)
3. Durchlauf der Matrix (Verknüpfung der User und deren Rechten)und lesen der einzelnen Funktionen (Leer, "X" oder sonstige Zeichen)
for i := 1 bis anzahl spalte_User
for y := 1 bis anzahl zeile_Rechte
select aus funktion f where f.x = spalte_user.id-x and y=zeile_Rechte.id-y
den Inhalt aus Funktion dann im StringGrid an der Position i,y eintragen.
Bei einer Matrix von ca.150 Spalten und ca.6000 Zeilen sind das 900.000 Zugriffe. Das bringt jeden Server in die Knie!!! Sowas sollte man sicherlich nicht machen. *g* zumal der sichtbare Bereich vielleicht nur 50 * 25 = 1250 zellen beträgt.
Wie kann man den Zugriff begrenzen? Vorschläge?
Ich dachte da einen Cursor, der nur die Spalten/Zeilen lädt, die auch auf dem Bildschirm sichtbar sind.
Ich bin für jede idee dankbar. Die Matrix muss dann editierbar sein und die Änderungen werden entsprechend gespeichert.
Kopfrauchenden Gruß
Axel
Comment