Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
1-1088933813
Sairex
2004-07-04 13:36
2004.07.25
RxRichEdit и цветной текст


3-1088496010
Valeri
2004-06-29 12:00
2004.07.25
ADO


1-1089394943
BBoost
2004-07-09 21:42
2004.07.25
Text


14-1088737014
OlegEm
2004-07-02 06:56
2004.07.25
D3 дистрибут


4-1086735785
vertal
2004-06-09 03:03
2004.07.25
Какие естьв стандартнам WinAPI функции копирования памяти