Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.039 c
3-1081333615
Kein
2004-04-07 14:26
2004.05.02
разрушение структуры таблицы


4-1078377183
-=[SDA]=-
2004-03-04 08:13
2004.05.02
Как узнать версию проекта???


14-1081836634
Dysan
2004-04-13 10:10
2004.05.02
Как уменьшить exe


4-1078684563
Volunteer
2004-03-07 21:36
2004.05.02
Как отслеживать нажатие клавиш из Win (XP) ?


1-1082035779
Garmahis
2004-04-15 17:29
2004.05.02
Цвет панели.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский