Autor Beitrag
wieczo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48


D6 Pers, TP 7.0
BeitragVerfasst: Do 08.09.05 10:11 
Hallo,

ich entwickle eine Software um Passwörter und Logins zu verschiedenen Anwendung zu speichern.
Jede Anwendung kann einen oder mehrere Logins haben.

Ein DBGrid zeigt alle Anwendungen(IDAPP) an, zu denen es Passwörter gibt.
Ich möchte das alle Passwörter(PASS) und Logins(LOGIN), die zur gleichen Anwendung gehören, in einem anderen DBGrid angezeigt werden wenn ich auf eine Anwendung im ersten DBGrid klicke.
Ich dachte OnCellClick zu benutzen, aber ich weiß nicht wo ich anfangen soll

Danke im Vorraus

Thomas Wieczorek
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Do 08.09.05 10:41 
hallo tom!

du könntest dein problem mit master-detail-tabellen lösen.
im master steht die anwendung und über deren index findest du in der (den) detail-tabellen die
zugehörigen logins, pw, berechntigungen, etc.

die methode 'OnCellClick' klingt gut. dadurch wird der ausgewählte datensatz zum aktiven und im
DBGrid, welches an der dateil-tabelle hängt, werden die zugehörigen logins, usw angezeigt.

ps: dobry wieczór ;)

_________________
mfg, stefan


Zuletzt bearbeitet von grayfox am Do 08.09.05 10:44, insgesamt 1-mal bearbeitet
s-off
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 35

WinXP
D7 Prof
BeitragVerfasst: Do 08.09.05 10:42 
huhu,

fragst du die anwendungen im ersten grid über ein sql-query ab?
wenn ja, dann solltest du die routinen des querys zur erkennung des datensatzwechsels benutzen, etwa Query1.AfterScroll.

dieses event trifft dann ein, wenn sich der zeiger in der tabelle auf einen anderen datensatz bewegt. damit hättest du auch das problem umgangen, dass auch bei klicks innerhalb einer zeile irgendeine abfrage ausgeführt wird, was bei DbGrid1.OnCellClick der Fall wäre.

_________________
greetz
s-off
wieczo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48


D6 Pers, TP 7.0
BeitragVerfasst: Do 08.09.05 11:21 
Okay, erst einmal Danke für die raschen Antworten.

Ich denke ich sollte zuerst meine Tabellenstruktur zeigen.
Meine Datenbank ist in Access und ich habe drei Tabellen.

USERS mit ID|USER|PASSWORD
APPLICATIONS mit ID|APPLICATION
LOGINS mit ID|ID_USER|ID_APP|LOGIN|PASSWORD|TIMESTAMP|ID_LASTCHANGE

Ich greife mit einem TADOQuery auf LOGINS zu, das mit einem SELECT alle ID_APP, TIMESTAMP und ID_LASTCHANGE zu einer bestimmten ID_USER aus der Tabelle läd. Diese Daten stelle ich dann über ein TDataSource in einem TDBGrid dar.
Mein Problem ist nun, wie weiß ich welche Zeile ich im DBGrid und die dazu gehörige ID_APP ausgewählt habe? Ich habe in den Options von DBGrid dgRowSelect = true bereits gesetzt. Ich würde nämlich dann mit einem anderen TADOQuery "SELECT LOGIN, PASSWORD FROM LOGINS WHERE ID_USER = 'bekannte UserID' AND ID_APP = 'ausgewählte ID_APP im ersten TDBGrid'.

Geht das mit Query.AfterScroll oder mit Master-Detail-Beziehungen?

Sehr dankbar,

Thomas Wieczorek

P.S: Dobry wieczór, Fox :)
s-off
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 35

WinXP
D7 Prof
BeitragVerfasst: Do 08.09.05 11:46 
die RowSelect-Eigenschaft ist im prinzip vollkommen wurscht - es geht dabei nur ums äußerliche.
wichtig ist, dass du einen datensatzwechsel registrierst - und das machst du in einem query mit afterscroll.

sollte also so funktionieren

_________________
greetz
s-off
wieczo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48


D6 Pers, TP 7.0
BeitragVerfasst: Do 08.09.05 12:25 
:D Vielen Dank!

Das Problem ist gelöst dank AfterScroll() und FieldByName() :)