|
Программисты не пишут нелогичных программ,
бывают нелогичные пользователи. |
Вы можете выполнить эту задачу, непосредственно обращаясь к BDE.
Включите следующие модули в сецию Uses вашего модуля: DBIPROCS,
DBIERRS, DBITYPES
Ниже приведена функция с именем ID, возвращающая сетевое имя
входа:
function ID: string;
var
rslt: DBIResult;
szErrMsg: DBIMSG;
pszUserName: PChar;
begin
try
Result := '';
pszUserName := nil;
GetMem(pszUserName, SizeOf(Char) * DBIMAXXBUSERNAMELEN);
rslt := DbiGetNetUserName(pszUserName);
if rslt = DBIERR_NONE then
Result := StrPas(pszUserName)
else
begin
DbiGetErrorString(rslt, szErrMsg);
raise Exception.Create(StrPas(szErrMsg));
end;
FreeMem(pszUserName, SizeOf(Char) * DBIMAXXBUSERNAMELEN);
pszUserName := nil;
except
on E: EOutOfMemory do
ShowMessage('Ошибка. ' + E.Message);
on E: Exception do
ShowMessage(E.Message);
end;
if pszUserName <> nil then
FreeMem(pszUserName, SizeOf(Char) * DBIMAXXBUSERNAMELEN);
end;
|
|