![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
обрыв канала связи,выключение сервера
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]Сохранение где - на стороне сервера или на стороне клиента ?