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

Вниз

Трех звенные приожения, обработка транзакций   Найти похожие ветки 

 
Term ©   (2004-03-30 10:51) [0]

Как осуществляется обработка транзакций при трехзвенной технологии.
На сервере приложений всё лежит в TRemoteDataModule, компонент TDataSetProvider и компоненты доступа к БД.

На клиенте TSoketConection и TClientDataSet. Как делать подтверждение транзации при вставке записей или обновлении?
Ведь тут нет таких методов как Commit или RollBack....


 
Term ©   (2004-03-30 10:56) [1]

или все операции вставки и обновления прописать как методы севера приложений и вызывать их с клиента использую COM-интерфейс... или есть еще способы?


 
Romkin ©   (2004-03-30 10:59) [2]

Как правило, провайдер сам следит за транзакциями. Перед обновлением открывает, после - закрывает. Если транзакция была уже открыта - оставит открытой. Отсюда и смотреть надо.


 
Term ©   (2004-03-30 11:09) [3]

а как за этим следить

я делаю так:

DataModule1.For_Login.Close;
DataModule1.SocketConnection1.Close;
DataModule1.SocketConnection1.Address:=Nastr.Edit1.Text;
DataModule1.SocketConnection1.Host:=Nastr.Edit2.Text;
DataModule1.For_Login.RemoteServer:=DataModule1.SocketConnection1;
DataModule1.SocketConnection1.Open;
DataModule1.For_Login.CommandText:="Текст запроса";
DataModule1.For_Login.Open;

///обработка рез-тов запроса;

DataModule1.For_Login.Close;


что не так и хде следить...?


 
Term ©   (2004-03-30 11:10) [4]

или в конце после закрытия TClientDataSet закрывать и
DataModule1.SocketConnection1.Close;

???


 
Nikolay M. ©   (2004-03-30 11:14) [5]

Тебе же сказали: транзакции автоматом возникают на уровне провайдера, можешь на апп. сервере ими сам рулить, а на клиенте управлять транзакциями не есть гуд.


 
Term ©   (2004-03-30 11:19) [6]

понятно значит прописать методы сервера и вызывать их на клиенте


 
Nikolay M. ©   (2004-03-30 11:21) [7]


> понятно значит прописать методы сервера и вызывать их на
> клиенте

О каких методах идет речь?


 
Polevi ©   (2004-03-30 11:23) [8]

ataModule1.For_Login.CommandText:="Текст запроса";
а вот так делать не нужно, зачем нужна тогда 3-звенка если thin-client знает о структуре хранилица ?


 
Romkin ©   (2004-03-30 11:27) [9]

В общем, как обычно.
http://rsdn.ru/article/db/midas.xml
Клиент вообще не должен знать ничего о БД, он общается с сервером


 
Term ©   (2004-03-30 11:31) [10]

методы сервера приложений раз используется COM-интерфейс, т.е.
добавить к примеру :
procedure ServApp.Login(Name:string);
begin
//ввод и обработка запроса
//и если Name не найден в БД тогда:
raise Exception.Create("Нет такого юзера");
end;


но это кажется не во всех случаях применимо.
и можно конкретно указать где и что я сделал не так, в [3]


 
Romkin ©   (2004-03-30 11:41) [11]

Да все допустимо ты делаешь. И все должно сработать :))
Вот только CommandText - зачем? Это что, полный аналог Query.Close; Query.SQL := "..."; Query.Open; ?
А нафига? ТАк и с query-то работать не рекомендуется, а в трехзвенке - и подавно.


 
Term ©   (2004-03-30 11:59) [12]

всё статью распечатал ща буду разбираться, всем спасибо


 
Соловьев ©   (2004-03-30 12:23) [13]


> Nikolay M. ©   (30.03.04 11:14) [5]
> Тебе же сказали: транзакции автоматом возникают на уровне
> провайдера, можешь на апп. сервере ими сам рулить, а на
> клиенте управлять транзакциями не есть гуд.

Как раз клиент токо и может решить конфликт.


 
Term ©   (2004-04-04 13:25) [14]


> Да все допустимо ты делаешь. И все должно сработать :))
> Вот только CommandText - зачем? Это что, полный аналог Query.Close;
> Query.SQL := "..."; Query.Open; ?
> А нафига? ТАк и с query-то работать не рекомендуется, а
> в трехзвенке - и подавно


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



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

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

Наверх




Память: 0.5 MB
Время: 0.023 c
1-1082030140
Layner
2004-04-15 15:55
2004.05.02
Как увеличить размер 2х мерного массива на 1 строку?


9-1069799899
MrAngel
2003-11-26 01:38
2004.05.02
Точки соединяются не верно.


4-1078141590
tytus
2004-03-01 14:46
2004.05.02
Ярлык и значек


6-1079072036
Ricko
2004-03-12 09:13
2004.05.02
Автоматическая настройка прокси сервера


3-1081240823
GIL
2004-04-06 12:40
2004.05.02
Работа с Yaffil