Определить наличие пользователя в FB 2.1
Модераторы: kdv, Alexey Kovyazin
Определить наличие пользователя в FB 2.1
Зарегистрированы пользователи в FB 2.1 через IBExpert. Как из программы (D2007) определить наличие этих пользователей в базе? Говорят существуют какие-то API сервисы через которые можно получить подобную информацию, где бы это прочитать?
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: Определить наличие пользователя в FB 2.1
Про "API сервисы" было бы логично читать в API Guide. Разве нет?
Re: Определить наличие пользователя в FB 2.1
Скачал указанную программку, подключил к учебной базе. При попытке вести имя и пароль существующего пользователя выдала такое сообщение "Table unknown RDB$USERS" ? Но ведь она существует ! И gsec.exe работает, в чём же дело?
Re: Определить наличие пользователя в FB 2.1
используйте отладчик Delphi. У меня такой проблемы нет. ФБ 2.1 + admin.exe. Разве что при логине выдает feature not supported, но это относится к ServerProperties и т.п., что ФБ не поддерживает.
Или просто ищите примеры использования TIBSecurityService, в частности они однозначно есть на sql.ru.
Или просто ищите примеры использования TIBSecurityService, в частности они однозначно есть на sql.ru.
Re: Определить наличие пользователя в FB 2.1
Ошибка возникает в процедуре FetchUserInfo, описанная в модуле IBServices. В принципе там всё довольно просто. Если сервер Local, то DataBaseName:= UserDatabase, прописанный в IBSecurityService и запрос FIBSQL.SQL.Text := 'SELECT * FROM RDB$USERS'; Если возникает ошибка "Table unknown RDB$USERS", то выходит, что DataBaseName:= UserDatabase не проходит. Но выяснить это не могу, потому как IBServices модуль откомпилированный и поставить там точку прерывания нельзя. Что делать?
А на SQL.RU примеров использования весьма скудно и мою проблему не решают. Что делать ?
А на SQL.RU примеров использования весьма скудно и мою проблему не решают. Что делать ?
Re: Определить наличие пользователя в FB 2.1
Вообще-то в procedure TIBSecurityService.FetchUserInfo; написано
указывать свойство UserDatabase никто не заставлял. Может, зачем-то это делается в коде примера admin, но обычно это никто не делает.
А в Firebird с версии 2.0 не разрешает явный коннект к БД пользователей, отсюда и ошибка у Вас.
Код: Выделить всё
if UserDatabase = '' then
begin
А в Firebird с версии 2.0 не разрешает явный коннект к БД пользователей, отсюда и ошибка у Вас.
Re: Определить наличие пользователя в FB 2.1
Невероятно, получилось. Столько времени угрохал из-за такой ерунды, и даже мысли не возникло убрать эту UserDataBase. Единственное смутное подозрение всвё-таки терзало, почему UserDataBase, а не как всегда DataBase. И на тебе, как всё просто. Огромное спасибо тебе, kdv.
Но попутно возник маленький вопрос. Когда получил в Memo список пользователей FirstName почему-то не отображает русские буквы. В свойствах фонта поставил RUSSIAN_CHARSET, шрифт самый, что ни на есть, русский Times New Roman. Да вот ни хрена, пишет на албанском и всё. В IBExpert всё нормально, а здесь нет. Что я ещё упустил? К стати, в примере AdminTool тоже русские не пишет.
Но попутно возник маленький вопрос. Когда получил в Memo список пользователей FirstName почему-то не отображает русские буквы. В свойствах фонта поставил RUSSIAN_CHARSET, шрифт самый, что ни на есть, русский Times New Roman. Да вот ни хрена, пишет на албанском и всё. В IBExpert всё нормально, а здесь нет. Что я ещё упустил? К стати, в примере AdminTool тоже русские не пишет.
Re: Определить наличие пользователя в FB 2.1
убиться можно. каким боком связаны кодировка символов и шрифт? я всю жизнь работаю с ansi_charset в IBE, и никогда не трогал эту настройку.В свойствах фонта поставил RUSSIAN_CHARSET
А русских букв в именах пользователя не будет, потому что там (в rdb$users) столбцы с charset none. Посмотрите структуру этой таблицы, если интересно.
Re: Определить наличие пользователя в FB 2.1
Просто у меня в Memo стоял шрифт system, а он не всегда отображает русские символы, поэтому и поcтавил Times. А заодно и RUSSIAN_CHARSET. Я ведь пробовал.каким боком связаны кодировка символов и шрифт?
Не будет так не будет. Придётся эту информацию хранить в отдельной таблице. Спасибо за всё.А русских букв в именах пользователя не будет
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: Определить наличие пользователя в FB 2.1
Держу пари, при этом ты всегда работал с локализованной Windows или ставил "Язык для non-unicode программ" (который и определяет какая кодовая страница будет иметь титул "ANSI") в "Русский", что эффективно приводит ANSI_CHARSET к RUSSIAN_CHARSET.kdv писал(а):убиться можно. каким боком связаны кодировка символов и шрифт? я всю жизнь работаю с ansi_charset в IBE, и никогда не трогал эту настройку.
Re: Определить наличие пользователя в FB 2.1
возможно. хотя до определенного момента работал с английскими виндами (с 1251 локалью). Использовал-ли я в те года IBE - не помню.