Moin
)
Wenn ich mal folgende Überlegung(en) einwerfen darf:
laut hansa geht es ja darum, welcher hochintelligente
User einen Datensatz in der
DB angelegt bzw verändert hat. Da nützt der Comuptername als solches wenig, weil damit ja noch nicht eindeutig klar ist, welcher User am Computer arbeitet und Modifikationen in der
DB vornimmt.
Es gibt da zwei schöne Funktionen:
1. WNetGetUser --> gibt den Namen des im Netzwerk angemeldeten Users,sofern im selbigen eingeloggt; ansonsten den Benutzernamen am Computer.
2. GetUserName --> gibt den Namen des aktuell am Computer bzw im Windows angemeldeten BEnutzers.
Zur eindeutigen Identifizierung des Benutzers, welcher da was in der
DB gemacht hat, müssten dann alle drei Informationen ComputerName,UserName,NetzLoginName - z.b. zusammengefasst in einem String - abgespeichert werden...
Delphi-Quellcode:
function NetzLoginName: String;
var
size: Cardinal;
begin
Size := 0;
WNetGetUser(nil,nil,size);
SetLength(RESULT,Size);
if WNetGetUser(nil,PChar(RESULT), Size) > 0
then Result := '';
end;
function ComputerName: PChar; //--Code vom marabu
var
buf: array [Byte]of Char;
size: Cardinal;
begin
size := SizeOf(buf);
if GetComputerName(@buf, size)
then Result := @buf[0]
else Result := nil;
end;
function UserName: PChar; //--o.a. Code vom marabu angepasst
var
buf: array [Byte] of Char;
size: Cardinal;
begin
size := SizeOf(buf);
if GetUserName(@buf, size)
then Result := @buf[0]
else Result := nil;
end;
Ich denke, dass diese Informationen wahrscheiblich nicht über einen Trigger in der
DB erhältlich sind, aber mit Sicherheit im OnCreate der Hauptform...