Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Вниз

isc_add_user   Найти похожие ветки 

 
Tomkat   (2004-12-25 15:03) [0]

Hi,мастера ! поскажите, как с помощью описанной в сабже фунуции доюавть пользователя серверу ?


 
Zacho ©   (2004-12-25 15:25) [1]

Естественно, вызвать её. Вот кусок из моего древнего компонента, вроде бы работал :)

 TSUsers = class(TComponent)
 private
   FDatabase: TpFIBDatabase;

   ...

   STATUS: ISC_STATUS;
   SEC: TUserSecData;
   Server: array[0..255] of char;   // Путь до базы
   User:    array[0..50] of char;    // Пользователь Админ
   UserPas: array[0..50] of char;    //

   ...    

   procedure SetSecStructure;
   procedure ErrorMessage(Code: Integer);
 public    

   ...
     
   procedure AddUser(UserName,password:string);
   
   ...
   
 published
   property  Database: TpFIBDatabase read FDatabase write SeTpFIBDatabase;
 end;

 ...

procedure TSUsers.SetSecStructure();
 var ServerTmp: String;
begin
  ServerTmp := FDatabase.DBName;
  StrPCopy(User, FDatabase.DBParams.Values["USER_NAME"]);
  StrPCopy(UserPas, FDatabase.DBParams.Values["PASSWORD"]);
  if Pos(":", ServerTmp) > 0 then begin
    Delete( ServerTmp, Pos(":", ServerTmp), 1);
    if Pos(":", ServerTmp) > 0 then begin
      SEC.protocol := sec_protocol_tcpip; (**Int protocol to use for connection **)
      ServerTmp := Copy(ServerTmp,1,Pos(":", FDatabase.DBName)-1);
    end else begin
      SEC.protocol := sec_protocol_local; (**Int protocol to use for connection **)
      ServerTmp := "";
    end;
  end;
  StrPCopy(Server, ServerTmp);
  SEC.sec_flags     := sec_server_spec       (**Short which fields are specified **)
                        or sec_password_spec
                        or sec_dba_user_name_spec
                        or sec_dba_password_spec;
                        //or sec_first_name_spec;
                        //or sec_last_name_spec;
  SEC.uid           := 0;                  (**Int the user"s id **)
  SEC.gid           := 0;                  (**int the user"s group id **)
  SEC.server        := Server;             (**PChar server to administer **)
  SEC.group_name    := nil;                (**PChar the group name **)
  SEC.first_name    := nil;               (**PChar the user"s first name **)
  SEC.middle_name   := nil;                (**PChar the user"s middle name **)
  SEC.last_name     := nil;                (**PChar the user"s last name **)
  SEC.dba_user_name := User;                (**PChar the dba user name **)
  SEC.dba_password  := UserPas;             (**PChar the dba password **)
end;

...

procedure TSUsers.AddUser(UserName,password:string);
var  ErrorCode: ISC_STATUS;
   NewUser:    array[0..50] of char;    // Пользователь Админ
   NewUserPas: array[0..50] of char;    //
begin
 SetSecStructure;
 StrPCopy(NewUserPas, password);                (**PChar the user"s password **)
 SEC.password  := NewUserPas;
 StrPCopy(NewUser, UserName);            (**PChar the user"s name **)
 SEC.user_name := NewUser;
 ErrorCode := isc_add_user(@STATUS , @SEC);
 if ErrorCode > 0 then
   ErrorMessage(ErrorCode)
end;



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.054 c
11-1087822526
Ugrael
2004-06-21 16:55
2005.01.30
KOL&IB7


14-1105098653
Kerk
2005-01-07 14:50
2005.01.30
Сенсация!


6-1097826165
alex732
2004-10-15 11:42
2005.01.30
IdSMTP, вложения и кодировка...


6-1100090278
prohorov
2004-11-10 15:37
2005.01.30
Как создать на Delphi то, что можно создать JBuilder ом ?


1-1105712210
Skiner_Y
2005-01-14 17:16
2005.01.30
Меню





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский