Zitat von
shmia:
Dann muss die Klasse TUserPermissions eben von Aussen mit geteilt bekommen aus welchem Dataset die Zugriffsrechte auszulesen sind.
[...]
Klasse TUserPermissions:
* bekommt sein Dataset von Aussen mitgeteilt
* weiss nur, wie die Felder heisen und kann damit arbeiten
* hat aber keine Anhnung auf welcher
DB und in welcher Tabelle die Daten liegen
Vielen Dank erstmal für eure Antworten!
Die Lösung mit der Klasse ist gut, aber was soll ich ihr als TDataSet übergeben? An sich muss ich es ja nur schaffen, dass die Funktion auf die
Query zugreifen kann, die auf meinem Hauptformular liegt, um dann in mit ihr eine Abfrage wie z.B. "SELECT name FROM mitarbeiter WHERE init = 'winlogonname'" auszuführen.
Da ich nicht wusste, was ich als TDataSet übergeben sollte, hab ich es trotzdem mit einer Übergabe der ZQuery versucht, allerdings bekam ich beim Zuweisen von
SQL.Text eine Zugriffsverletzung.
Hauptformular:
Delphi-Quellcode:
begin
Users := TUserPermissions.Create;
Users.UserQuery := zquery;
ZConnection1.Connected := true;
Funktion in
Unit:
Delphi-Quellcode:
function TUserPermissions.getWorkerNameByLogon(_name: string): string;
var workername: string;
begin
// SELECT m.name FROM mitarbeiter m WHERE m.init = _name
UserQuery.SQL.Text := 'SELECT * FROM mitarbeiter';
UserQuery.Open;
UserQuery.First;
while not UserQuery.Eof do
begin
workername := UserQuery.FieldValues['name'];
UserQuery.Next;
end; // while
UserQuery.Close;
result := workername;
end;
Entschuldigt bitte, ich habe vorher was Datenbanken betrifft nur php+
mysql kennengelernt, mit Delphi habe ich das noch nie gemacht.