Форум: "Базы";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизТрех звенные приожения, обработка транзакций Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c