Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
 BACKUP и прогрессбар  [new]
AndrF
Member

Откуда:
Сообщений: 2043
Давно уже делал - сейчас приходится вспоминать.

Есть ADODB.Connection к базе MS SQL. Через Execute выполняется длительная операция бэкапа/восстановления. Нужно отрисовывать прогрессбар. Понятно что это делается через асинхронные операции, но ведь нужно еще получить процент выполнения...

Но может кто может поделиться готовым примерчиком, чтобы не рыться в слепую?
16 окт 18, 09:43    [21704776]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20206
AndrF
операция бэкапа/восстановления
Штатная? или собственный алгоритм?
16 окт 18, 09:56    [21704785]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
AndrF
Member

Откуда:
Сообщений: 2043
Shocker.Pro
AndrF
операция бэкапа/восстановления
Штатная? или собственный алгоритм?


Типа:

        cn.Execute "BACKUP DATABASE [edu_usedo] TO  DISK = N'L:\Backup\test.bak'" & vbCrLf _
            & "WITH COPY_ONLY, NOFORMAT, INIT, NAME = N'Test-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 5", , adAsyncExecute
16 окт 18, 10:10    [21704799]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20206
Студия как-то получает этот прогресс, значит возможно.
Можно для начала посмотреть обмен между студией и сервером с помощью профайлера.
А вообще, КМК, вопрос больше для раздела MSSQL
16 окт 18, 10:33    [21704845]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
AndrF
Member

Откуда:
Сообщений: 2043
Shocker.Pro
Студия как-то получает этот прогресс, значит возможно.
Можно для начала посмотреть обмен между студией и сервером с помощью профайлера.
А вообще, КМК, вопрос больше для раздела MSSQL


Да фиг там ответят. Мне ведь надо как получить эти проценты в VB6, а не как выполнить бэкап в MS SQL...
16 окт 18, 10:44    [21704861]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20206
Скажем так, проценты надо получить в ADO, что такое ADO - там знают

Вот, к примеру, поиск выдал первую же ссылку там https://www.sql.ru/forum/1177868/sql2008r2-kak-otsledit-progress-bekapa
16 окт 18, 10:50    [21704869]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3226
есть 1 способ, довольно простой :)
раз в секунду добавляем к прогресс бару 10% от процента незавершенного процента и прибавляем к проценту выполнения. Когда он будет подходить к 100% будет всё медленнее и медленнее, а потом в конце бац и делаем 100% :D готово
16 окт 18, 14:15    [21705242]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
ATM-TURBO 2
Member

Откуда:
Сообщений: 165
А если так?
Dim WithEvents cRS As ADODB.Recordset
....
Set cRS = cCn.Execute("<SQL>", , adAsyncFetch)
....
Private Sub cRS_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
' // Вызывается периодически
End Sub
16 окт 18, 14:40    [21705297]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20206
Roman Mejtes
есть 1 способ, довольно простой :)
раз в секунду добавляем к прогресс бару 10% от процента незавершенного процента и прибавляем к проценту выполнения. Когда он будет подходить к 100% будет всё медленнее и медленнее, а потом в конце бац и делаем 100% :D готово
Ненавижу!!!!!! А-а-а-а!!!!
16 окт 18, 14:41    [21705300]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20206
ATM-TURBO 2
А если так?
Dim WithEvents cRS As ADODB.Recordset
....
Set cRS = cCn.Execute("<SQL>", , adAsyncFetch)
....
Private Sub cRS_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
' // Вызывается периодически
End Sub
Это если своя процедура, которая может выдавать прогресс. А тут одна единственная команда выполняется в пакете
16 окт 18, 14:43    [21705302]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP и прогрессбар  [new]
AndrF
Member

Откуда:
Сообщений: 2043
Shocker.Pro
Скажем так, проценты надо получить в ADO, что такое ADO - там знают

Вот, к примеру, поиск выдал первую же ссылку там https://www.sql.ru/forum/1177868/sql2008r2-kak-otsledit-progress-bekapa


Ну, в принципе, по ссылке есть за что зацепиться. Попробовал... Чуть доработать и будет работать нормально.

Хотя, помниться, давным-давно я в ADODB как-то перехватывал то что в SSMS выводится в Messages. Но как - забыл напрочь.
16 окт 18, 16:48    [21705540]     Ответить | Цитировать Сообщить модератору
Все форумы / Visual Basic Ответить