Главная страница
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.032 c
6-1078074659
KPOKC
2004-02-29 20:10
2004.05.02
Сетевые потоки (FireWall)


1-1082275000
Master Paleva
2004-04-18 11:56
2004.05.02
Как прописать что-либо в реестр из Делфи


14-1081846814
human
2004-04-13 13:00
2004.05.02
Где можно найти на этом сайте


3-1081105432
alexey
2004-04-04 23:03
2004.05.02
Фильтрация данных


1-1081798973
Nekto
2004-04-12 23:42
2004.05.02
Excel