-
Forum: Datenbanken
Delphi
by MrSpock,
17. Nov 2002
Hallo m-werk,
es könnte noch an dem ModalResult des Schalters liegen, den der Benutzer im Login-Fenster Drucken kann. Dieser sollte mrOK sein (was der 1 entspricht). Öffne noch einmal frmLogin und stelle den ModalResult des "OK" Schalters auf 1 bzw. mrOK. Sollte das dann auch noch nicht klappen, teste das Programm mal im Einzelschrittmodus.
-
Forum: Datenbanken
Delphi
by MrSpock,
17. Nov 2002
Hallo m-werk,
Diesen Schritt hast du noch nicht ausgeführt. (Doppelklick auf die qryCheck Komponente und alle Felder hinzufügen.)
Poste doch bitte mal den Quelltext des Projektes. Wenn du meinen Code übernimmst (und den korrekten Namen des Hauptfensters überprüft hast), funktioniert es. Beachte bitte, dass das Passwort Groß-/Kleinschreibung unterscheidet!
-
Forum: Datenbanken
Delphi
by MrSpock,
17. Nov 2002
Hallo m-werk,
da die Arbeitszeittabelle ja auch auf der Personalnummer basiert, würde ich noch zwei Änderungen im bisherigen Programm machen:
if UpperCase(Trim(qryCheckPasswort.Value)) =
UpperCase(Trim(ePasswort.Text)) then
begin
PasswortOK := True;
PNr := qryCheckpersonalnummer.Value;
end
-
Forum: Datenbanken
Delphi
by MrSpock,
15. Nov 2002
Hallo m-werk,
dass das Hauptformular geöffnet wird, wenn der Login korrekt abgelaufen ist, haben wir ja schon durch den Zugriff auf den Projektquelltext erledigt:
Application.Initialize;
frmLogin := TfrmLogin.Create(Application);
if (frmLogin.ShowModal = 1) and frmLogin.PasswortOK then
begin
Application.CreateForm(TArbeitszeitForm, ArbeitszeitForm);
-
Forum: Datenbanken
Delphi
by MrSpock,
14. Nov 2002
Hallo m-werk,
immer wenn du auf die Passwoerter Tabelle zugreifen willst, also hier:
procedure TfrmLogin.FormActivate(Sender: TObject);
begin
Session.AddPassword('mwerk');
qryUser.Close;
qryUser.Open;
cbUser.Clear;
-
Forum: Datenbanken
Delphi
by MrSpock,
13. Nov 2002
Hallo m-werk,
ja, der Eintrag ftString als Typ des Parameters ist korrekt.
Nun zu der Passworteingabe für die Datenbank. Die musst du natürlich über das Programm eingeben, sonst müsstest du ja jedem Mitarbeiter das Paßwort nennen, damit er sich anmelden kann. Das Passwort fügst du vor dem Zugriff auf die Passwoerter Tabelle wie folgt der Session hinzu:
Session.AddPassword('mwerk');
...
-
Forum: Datenbanken
Delphi
by MrSpock,
9. Nov 2002
Hallo m-werk,
PasswortOK habe ich als Boolean im PUBLIC Bereich von frmLogin deklariert, damit andere Formulare darauf zugreifen können.
Das Login Formular soll das "2. Formular" sein. Das Hauptformular soll weiterhin in der automatischen Reihenfolge bleiben! Durch den Eingriff in den Projektquellcode haben wir aber verhindert, dass es tatsächlich erzeugt wird, solange der Benutzer kein...
-
Forum: Datenbanken
Delphi
by MrSpock,
7. Nov 2002
Hallo m-werk,
ein wichtiger Tip noch:
Dem Eingabefeld im Passwortdialog (oben im Code ePasswort) sollte im Objektinspektor ein PasswordChar (meist *) zugwiesen werden.
-
Forum: Datenbanken
Delphi
by MrSpock,
7. Nov 2002
Hallo m-werk,
zum Testen solltest du mindestens einen Eintrag in die Personentabelle und einen passenden Eintrag in die Passwoerter Tabelle schreiben.
Du solltest das Login Formular von der automatischen Erstellung ausnehmen (Projekt|Optionen...).
Im Projektquelltext solltest du dann so was ähnliches wie das hier machen:
Application.Initialize;
frmLogin :=...
-
Forum: Datenbanken
Delphi
by MrSpock,
30. Okt 2002
Hallo m-werk,
auf die Fragen werde ich heute Abend eingehen. Nur ein kurzer Kommentar. Das mit den 3 Versuchen beim Login, war nur dazu gedacht, dass ein Mitarbeiter nicht versucht, sich als anderer Mitarbeiter einzuloggen und dessen Passwort hackt. Er hätte, in dem Konzept, das ich mir vorstelle, nach Eingabe des korrekten Passwortes, Zugriff auf die bisher eingegebenen Daten des...
-
Forum: Datenbanken
Delphi
by MrSpock,
25. Okt 2002
Hallo m-werk,
ich gehe davon aus, dass du den Resturlaub in Tagen angeben willst, dann wäre S auch OK.
Ich würde vielleicht mit einem Login - Fenster anfangen. Die Idee dahinter: Jeder muss sich anmelden. Das Formular enthält den Login Namen und das Passwort. Willst du einen Login Namen zulassen, der nicht genau dem Namen entspricht, soltest du die Passworttabelle um ein Feld LoginName...
-
Forum: Datenbanken
Delphi
by MrSpock,
25. Okt 2002
Hallo m-werk,
diese drei Felder würde ich nicht in die Personaltabelle schreiben, weil sie sich ja ständig ändern. Lieber eine neue Tabelle mit Personalnummer als Schlüssel. Das Passwort legst du am besten gleich mit der Datenbankoberfläche an. Falls die Tabelle schon existiert wählst du Tools|Umstrukturieren und dann in den Tabelleneigenschaften Passwortschutz.
Ich meld mich wieder...
-
Forum: Datenbanken
Delphi
by MrSpock,
24. Okt 2002
Übrigens: Sollten die Personaldaten oder die Arbeitszeiten kritisch sein, solltest du auch hier Paßwörter anlegen! Sonst könnte ein Nutzer die Daten sehr leicht darauf zugreifen. Sicherheit ist natürlich ein wichtiges Thema. Paradox kann hier wohl nicht mit SQL Datenbanken mithalten. Aber so einfach knackt man Paradox Tabellen nicht :mrgreen: .
Beitrag verschoben ...
-
Forum: Datenbanken
Delphi
by MrSpock,
24. Okt 2002
Hallo m-werk,
da hast du gleich einen guten Punkt gefunden. Bei der Tabelle Arbeitszeit fehlt aus Versehen das wichtigste Feld ist natürlich noch die Personalnummer. Das sollte gleich das erste Feld sein. Ein Schlüssel (primary key) muss eindeutig sein. In der Tabelle Arbeitszeit soll aber für jede Person, für jedes Jahr mehrer Einträge gemacht werden. Du müsstest also einen zusammengestzten...
-
Forum: Datenbanken
Delphi
by MrSpock,
24. Okt 2002
Hallo m-werk,
die Struktur der Tabellen hast du ja eigentlich schon selbst vorgegeben:
1. Tabelle Personen
Personalnummer A 10 * (Schlüssel)
Name A 30
StdProTag N
Eintrittsdatum D
-
Forum: Datenbanken
Delphi
by MrSpock,
24. Okt 2002
Hallo m-werk,
wenn du ein Netzwerk hast, ist es einfach, die Datenbank auf irgendeinen Pfad zu legen, auf dem jeder Schreibrechte hat. Der Alias wird dann auf den Netzwerkpfad umgeleitet.
-
Forum: Datenbanken
Delphi
by MrSpock,
23. Okt 2002
Hallo m-werk,
das könntest du mit Paradox machen. Es handelt sich ja hier um Personendaten und beliebig viele Einträge pro Person. Eine typisches 1:n Relation für eine relationale Datenbank. Über SQL kannst du dann auch recht einfach Auswertungen über die Daten machen. In den Masken benutzt du datensensitive Editfelder. Kommt dieser Ansatz für dich in Frage? Gibt es dort auch ein Netzwerk, so...