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

Вниз

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

 
изм ©   (2003-08-19 13:53) [0]

Прошу сильно не пинать только учусь

проблема у меня следующая:

Есть сервер приложения на нем DataBase1, Session1 (AutoSesionName = true) и пара таблиц с провайдерами,
есть метод

procedure TSimple.Connect(const UserName, Password: WideString; out DidLogin: HResult);
begin
Database1.Params.Clear;
Database1.Params.Add("PASSWORD="+Password);
Database1.Params.Add("USER NAME="+UserName);
FPassword := Password;
FUserName := UserName;
try
DidLogin := 0;
Database1.Open;
except
DidLogin := 1;
raise;
end;
end;

у клиента
несколько TClientDataSet, FISimple :ISimple;
и процедура

procedure TForm2.btConnectClick(Sender: TObject);
var
R: HRESULT;
begin
FISimple := CoSimple.Create;
FISimple.Connect("SYSDBA", "1", R);
if R = 0 then
begin
cdsCustomer.Open;
cdsVendors.Open;
end;
end;

теперь собственно вопрос почему для одного клиента создается две сессии (на открытие базы и на открытие таблиц) и как это лечить?


 
Digitman ©   (2003-08-19 14:50) [1]

сам же пишешь

> несколько TClientDataSet


при такой схеме сколько объектов TClientDataSet -
столько и сессий получаешь на стороне сервера


 
изм ©   (2003-08-19 15:03) [2]

а разве не по Connection
кроме того я ставил одну таблицу а сессий было все равно две


 
Vlad ©   (2003-08-19 15:09) [3]

Попробуй коннект к базе не с клиента, а с сервера приложений.
Т.е. в начале каждого метода вызывай свой Connect
Возможно в этом причина.


 
Dred2k ©   (2003-08-19 16:32) [4]

Если юзаешь BDE, то есть такая глобальная переменная Session.
Она всегда создается и открывается, уничтожать нельзя (в хелпе все о ней есть).


 
изм ©   (2003-08-19 16:55) [5]

2 Vlad
на сервере приложени есть метод коннект который вызывается на клиенте, а как еще !?

2 Dred2k в BDE, насколько я понимаю глобальная переменная Session покажывает какая сессия в данный момент отображается в визуальных компонентах


 
Dred2k ©   (2003-08-19 17:00) [6]

> изм © (19.08.03 16:55)

В хелп залезь и все увидишь.


 
изм ©   (2003-08-19 17:04) [7]

вопрос решился оказалось что в методе btConnectClick нет необходимости создавать сервер, после того как открывается связь
Connection.Open сервер запускается автоматически, и устанавливает соедитение с базой при cdsCustomer.Open т.е еще раз
вылечил

DBCon.Open;
(DBCon.aPPSERVER AS ISimple).cONNECT();
далее по тексту



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

Текущий архив: 2003.09.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
3-33433
Жук
2003-08-21 14:56
2003.09.11
Скрипт данных из одной БД и


3-33523
Layner
2003-08-19 16:50
2003.09.11
Как сделать подкачку данных из БД (не все тянуть при коннекте)


3-33462
Vova
2003-08-21 09:02
2003.09.11
Программное определение структуры таблиц БД


14-33806
alxx
2003-08-22 11:42
2003.09.11
Что за телефоны, начинающиеся с кода (424) в Питере?


14-33771
KSergey
2003-08-22 15:32
2003.09.11
---|Ветка была без названия|---