Hola.
Para verificar la existencia de un usuario, también se puede consultar a
Firebird directamente:
Código PHP:
bool userExists(TIBQuery *QY, const AnsiString& userName)
{
QY->Close();
QY->SQL->Clear();
QY->SQL->Add("SELECT DISTINCT RDB$USER");
QY->SQL->Add("FROM RDB$USER_PRIVILEGES");
QY->SQL->Add("WHERE RDB$USER = :USER");
QY->ParamByName("USER")->AsString = userName;
QY->Open();
bool found = ! QY->IsEmpty();
QY->Close();
return found;
}
// ejemplo del uso
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if ( userExists(IBQuery1, "sysdba") )
...
}
Un ejemplo del uso de
TIBSecurityService:
Código PHP:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TIBSecurityService *ss = IBSecurityService1;
ss->SecurityAction = ActionDisplayUser;
ss->LoginPrompt = false;
ss->Params->Add("user_name=sysdba");
ss->Params->Add("password=masterkey");
ss->Active = true;
__try {
ss->DisplayUser(ss->UserName);
Memo1->Clear();
Memo1->Lines->Add("Name: "+ss->UserInfo[0]->UserName);
Memo1->Lines->Add("First Name: "+ss->UserInfo[0]->FirstName);
Memo1->Lines->Add("Middle Name: "+ss->UserInfo[0]->MiddleName);
Memo1->Lines->Add("Last Name: "+ss->UserInfo[0]->LastName);
Memo1->Lines->Add("GroupID: "+ IntToStr(ss->UserInfo[0]->GroupID));
Memo1->Lines->Add("UserID: "+IntToStr(ss->UserInfo[0]->UserID));
}
catch (const Exception& e) {
ShowMessage(e.Message);
}
}
Saludos