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

Вниз

Как спросить в трехуровневом приложении логин и пароль в БД?   Найти похожие ветки 

 
Bukerman ©   (2004-06-29 16:46) [0]

Всем привет!
Подскажите кто сталкивался, как заставить спрашивать прогу через сервер приложений логин и пароль в базу Interbase?
В 2х уровневом приложениии ставлю LoginPrompt = True и все ОК, но вот в 3х уровневом - не получается, использую TDatasetProvider на клиенте и TSocketConnection на сервере, ставлю на TDatasetProvider"e LoginPrompt = True, появляется окно логина, когда ввожу логин/пароль ругается и не пускает....


 
bushmen ©   (2004-06-29 16:51) [1]

Тут как-то проскакивало. Надо LoginPromt поставить в False, на клиенте самому сделать форму запроса пароля, а на сервере приложений создать процедуру, которая будет проверять наличие пароля на сервере и возвращать на клиента True или False


 
Bukerman ©   (2004-06-29 17:01) [2]

что-то я не понял...
LoginPrompt поставить в False где, на сервере или на клиенте?
И процедуру какого плана, по какому принципу она будет возвращать данные??
Или ткни пальцем туда, где это проскакивало, я найти что-то не могу.....


 
Vlad ©   (2004-06-29 17:06) [3]


> Bukerman ©   (29.06.04 17:01) [2]

Какой м.б. LoginPrompt на клиенте в трехзвенном приложении ?
На сервере приложений естественно. В противном случае, если не поставить False, окно с запросом пароля будет выскакивать на сервере приложений.

> И процедуру какого плана, по какому принципу она будет возвращать
> данные??

Что значит какого плана ?
Не можешь  написать функцию, которая на вход получает логин, пароль и возвращает код ответа ?


 
Bukerman ©   (2004-06-29 17:13) [4]

> Какой м.б. LoginPrompt на клиенте в трехзвенном приложении ?
> На сервере приложений естественно. В противном случае, если > > не поставить False, окно с запросом пароля будет выскакивать > на сервере приложений.


LoginPrompt если не знаешь есть на SocketConnection

> Что значит какого плана ?
> Не можешь  написать функцию, которая на вход получает логин, > пароль и возвращает код ответа ?


Я не могу понять с чем сравнивать, с логином и паролем, кот. прописан в компоненте что ли? И чем не устраивает стандартная форма логин/пароль, зачем свою создавать?


 
bushmen ©   (2004-06-29 17:24) [5]

>Я не могу понять с чем сравнивать, с логином и паролем, кот. прописан в компоненте что ли

Сравнивать будешь не ты, а сервер БД, которому ты будешь совать логин и пароль пользователя, которые он введет на клиенте!


 
Bukerman ©   (2004-06-29 17:32) [6]

не могу я догнать что-то....
я с делфями недавно работаю, примерно можно увидеть, что требуется?

заранее спасибо.


 
bushmen ©   (2004-06-29 18:02) [7]

>я с делфями недавно работаю

А чем тебе 2-х уровневая система не устраивает?


 
Bukerman ©   (2004-06-30 15:48) [8]

блин, ну как чем, не нужно на каждом клиенте ставить клиента интербазы
меня интересует вопрос, как логин и пароль с клиента передать на сервер для проверки?


 
bushmen ©   (2004-06-30 16:31) [9]

Тебе я в [1] ответил


 
Bukerman ©   (2004-06-30 16:36) [10]

я эту процедуру, вернее функцию, уже написал, с двумя входными параметрами: логин и пароль, возвращает - true или false.
но как мне в нее передать эти параметры с клиента?


 
Sandman25 ©   (2004-06-30 16:39) [11]

...AppServer.CheckLogin(Encrypt(edUser.Text), Encrypt(edPassWord.Text));


 
Bukerman ©   (2004-06-30 17:43) [12]

блин, я не могу понять, подскажите плз кто-нибудь...
я так и делаю, вот моя функция на сервере, объявленная в секции public:

function TAppSrv.Test(Login, Password: string):Boolean;
begin
 if ((Login="SYSDBA") and (Password="masterkey")) then
   Result:=True
 else Result:=False;
end;

вот вызов из клиента:

 if f_DM.SocketConnection1.AppServer.Test("SYSDBA", "yar")
   then ShowMessage("получилось!");

выдается ошибка "Invalid variant operation", что я делаю не так?


 
Sandman25 ©   (2004-06-30 17:48) [13]

В COM нет типа String. Используйте OleVariant или WideString


 
Bukerman ©   (2004-06-30 18:39) [14]

все сделал через мастер, меню Edit->Add interface
вот функция:

function TAppSrv.Test(const Login, Password: WideString): Integer;
begin
 if ((Login="SYSDBA") and (Password="masterkey")) then
   Result:=1
 else Result:=0;
end;

вот ее вызов из клиента:
 if f_DM.SocketConnection1.AppServer.Test("SYSDBA", "masterkey")=1
   then ShowMessage("получилось!");
но ошибка та же самая
"Invalid variant operation" :((((((((((((((((((((((((((

что мне нужно сделать?



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

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

Наверх





Память: 0.48 MB
Время: 0.036 c
1-1089271156
denis24
2004-07-08 11:19
2004.07.25
дата в 36-ричной системе (например BQ - 26 ноября)


6-1085736941
Turbid
2004-05-28 13:35
2004.07.25
Проверка последнего изменения страницы без закачки?


14-1089283653
TohaNik
2004-07-08 14:47
2004.07.25
Вот не знаю... радоваться или огорчаться?


1-1089379025
DelphiNew
2004-07-09 17:17
2004.07.25
Не раскрывается TreeView


3-1088673750
Relaxxx
2004-07-01 13:22
2004.07.25
Как мне в БД Оракл записать bmp-файл, в BLOB поле





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский