Главная страница
    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.045 c
7-1079237234
$tranger
2004-03-14 07:07
2004.05.02
Запись звука через микрофон


14-1081621713
Yanis
2004-04-10 22:28
2004.05.02
Худое окно


14-1081322647
Игорь Шевченко
2004-04-07 11:24
2004.05.02
:)


3-1081411775
Ozone
2004-04-08 12:09
2004.05.02
Потоки + БД


6-1078837747
vintik
2004-03-09 16:09
2004.05.02
как получить имя текущего usera





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский