Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

обрыв канала связи,выключение сервера


denis24 ©   (2009-05-15 16:58:00) 

Здравствуйте,подскажите пожалуйста как решить этот момент.
Приложение написано на VB но суть вопроса остаётся таже.
В приложениее конекчусь через ADO и ODBC к Oracle серверу.
Создаю рекордсет с помощью которого постоянно добавляю записи в таблицу на сервере.

Dim conn As ADODB.Connection
Dim rst As New ADODB.Recordset

Set conn = New ADODB.Connection
With conn

  .CursorLocation = adUseClient
  .Provider = "MSDAORA"
  '.Open = "dsn=aice10g"
  .Properties("Data Source").Value = "aice10g"
  .Properties("User ID").Value = "disegn"
  .Properties("Password").Value = "disegn"
  .Open
End With
rst.LockType = adLockOptimistic
rst.Source = "select * from ats where ats.date_call is not null"
Set rst.ActiveConnection = conn
rst.Open
rst.AddNew
.
.
.
rst.update

записи добавляются очень часто.
Связь с сервером иногда может прерываться.Как реализовать сохранение данных при обрыве связи или выключениии сервера?
Ткните носом где читать?


Игорь Шевченко   (2009-05-15 19:10:00) [1]

вроде как для этого ClientDataSet придумали


denis24   (2009-05-15 18:28:00) [2]

ага
> Медвежонок Пятачок ©   (15.05.09 18:08) [12]
>
> а как "складировать"?Не соображу.Дай чтото поконкретней?
>
>
> Примерно так же как ты делаешь это на оракле.
> Только складывать не на оракле (который сейчас выключен),
>  а в локальном файле access "ats.mdb"
>

тоесть при ошибке коммита,сохранять данные в локальную бд а при появлении вікладывать на сервер?


Медвежонок Пятачок   (2009-05-15 18:08:00) [3]

а как "складировать"?Не соображу.Дай чтото поконкретней?

Примерно так же как ты делаешь это на оракле.
Только складывать не на оракле (который сейчас выключен), а в локальном файле access "ats.mdb"


Медвежонок Пятачок   (2009-05-15 18:06:00) [4]

... который еще как ты сказал может быть вообще выключен


Медвежонок Пятачок   (2009-05-15 18:04:00) [5]

данные получает клиент и сохраняет их в таблице сервера.это логирование.

Ну получил клиент данные.
Связь пропала, данные до сервера не дошли.
Их там еще нет.
Что ты при этом собрался сохранять на сервере?


denis24   (2009-05-15 18:03:00) [6]


> да хоть год не будет связи.
> складируй инсерты в очередь локально пока связист не наладит
> связь
> <Цитата>
>
>

а как "складировать"?Не соображу.Дай чтото поконкретней?


denis24   (2009-05-15 18:01:00) [7]


> а что сохранять на стороне сервера, если связь проервалась
> и на сервере еще нет того, чего нам надо сохранять на сервере?
>

данные получает клиент и сохраняет их в таблице сервера.это логирование.


Медвежонок Пятачок   (2009-05-15 17:59:00) [8]

да хоть год не будет связи.
складируй инсерты в очередь локально пока связист не наладит связь


denis24   (2009-05-15 17:57:00) [9]


> Медвежонок Пятачок ©   (15.05.09 17:46) [2]
>
> зачем?
>
> транзакция бегин
> инсерт
> коммит
>
> не получилось - реконнект и снова повторяем транзакцию

а если нет связи с сервером несколько часов?
при ошибке комита всё это время в цикле реконект?
записи прибывают.Это логирование атс.


Медвежонок Пятачок   (2009-05-15 17:57:00) [10]

а если нет связи с сервером несколько часов?

"А если бы он вез патроны?"


Медвежонок Пятачок   (2009-05-15 17:56:00) [11]

а что сохранять на стороне сервера, если связь проервалась и на сервере еще нет того, чего нам надо сохранять на сервере?


denis24   (2009-05-15 17:51:00) [12]


> Сохранение где - на стороне сервера или на стороне клиента
> ?

на стороне сервера


Медвежонок Пятачок   (2009-05-15 17:46:00) [13]

зачем?

транзакция бегин
инсерт
коммит

не получилось - реконнект и снова повторяем транзакцию


Сергей М.   (2009-05-15 17:02:00) [14]

Сохранение где - на стороне сервера или на стороне клиента ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо