Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Топ:
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Оснащения врачебно-сестринской бригады.
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Дисциплины:
2017-12-12 | 221 |
5.00
из
|
Заказать работу |
|
|
Const ME_NAME = "Выполнение запросов в транзакции"
Global FORM_WITH_TRANS As Form
Public Function ExecuteTrans(STATUS_STRING As String, queries() As String, Optional ClearStatusString As Boolean = True, _
Optional WithoutTrans As Boolean = False) As Boolean
Static ACTIVE As Boolean
Dim L As Integer, U As Integer, c As Integer, i As Integer
Dim wsp As Workspace, dbs As Database, on_transaction As Boolean
Dim s As String
Dim qa As String
On Error GoTo ErrHandler
ExecuteTrans = False
If Not CheckVersion() Then Exit Function
L = LBound(queries)
U = UBound(queries)
c = U - L + 1
If c < 1 Then Exit Function
If ACTIVE Then
OpenForm "Сообщение_F",,,,, acDialog, "Не завершено выполнение" & vbNewLine & "предыдущей операции",, False
Exit Function
End If
ACTIVE = True
DoCmd.Hourglass True
If Not WithoutTrans Then
Set wsp = DBEngine.Workspaces(0)
wsp.IsolateODBCTrans = True
wsp.BeginTrans
on_transaction = True
End If
Set dbs = CurrentDb
For i = L To U
SysCmd acSysCmdInitMeter, STATUS_STRING & "..." & i & "/" & c, c
SysCmd acSysCmdUpdateMeter, i
If queries(i) <> "" Then dbs.Execute queries(i), dbFailOnError
DoEvents
Next i
If Not WithoutTrans Then
wsp.CommitTrans dbForceOSFlush
on_transaction = False
End If
ExecuteTrans = True
'обновление активности после выполнения транзакции
qa = "UPDATE Активные_пользователи SET Активные_пользователи.TRANSACT_LAST = Now()" & vbNewLine
qa = qa & "WHERE KOD_USER = " & DLookup("KOD_USER", gWORK_PLACE) & " AND COMP=" & DLookup("NUM_COMPUTER", gWORK_PLACE)
dbs.Execute qa
ExitFunction:
If ClearStatusString Then SysCmd acSysCmdClearStatus: DoCmd.Hourglass False
ACTIVE = False
Exit Function
ErrHandler:
If on_transaction Then wsp.Rollback
DoCmd.Hourglass False
ACTIVE = False
Select Case Err.NUMBER
Case 3022 'Нарушение уникальности индекса
OpenForm "Сообщение_F",,,,, acDialog, "Нарушение уникальности индекса" & vbNewLine & "Запрос№" & i & ": " & queries(i),, False
Case 3167 'Запись удалена
OpenForm "Сообщение_F",,,,, acDialog, _
"Не удалось провести изменения из-за" & vbNewLine & _
"конфликта с изменениями другого" & vbNewLine & _
"пользователя!" & vbNewLine & _
|
"Попробуйте внести изменения еще раз!" & vbNewLine & "Запрос№" & i & ": " & queries(i),, False
Case 3200 'Удаление или изменение записи невозможно. В таблице '$' имеются связанные записи.
OpenForm "Сообщение_F",,,,, acDialog, _
"Изменение невозможно!" & vbNewLine & _
"Ведет к нарушению целостности данных!" & vbNewLine & "Запрос№" & i & ": " & queries(i),, False
Case 3218, 3260 'Обновление невозможно; блокировка установлена пользователем '$' на машине '$'.
OpenForm "Сообщение_F",,,,, acDialog, _
"Не удалось провести изменения в" & vbNewLine & _
"документе, так как в данный момент" & vbNewLine & _
"выполняется обработка данных на" & vbNewLine & _
"другом компьютере!" & vbNewLine & _
"Подождите немного и попробуйте внести" & vbNewLine & _
"изменения еще раз!" & vbNewLine & "Запрос№" & i & ": " & queries(i),, False
Case 3265 'Item not found in this collection
OpenForm "Сообщение_F",,,,, acDialog, "Нет такого запроса: " & vbNewLine & queries(i),, False
Case 3316 'Товар_остатки_подробно
OpenForm "Сообщение_F",,,,, acDialog, _
"Операция не может быть выполнена!" & vbNewLine & _
Err.DESCRIPTION
Case 3035 'Недостаточно системных ресурсов
OpenForm "Сообщение_F",,,,, acDialog, _
"Недостаточно системных ресурсов!" & vbNewLine & vbNewLine & _
"Попробуйте изменить условия отбора," & vbNewLine & _
"чтобы уменьшить объем формируемых данных.",, False
Case Else
s = "Сообщите разработчику программы" & vbNewLine & Err.NUMBER & ": " & Err.DESCRIPTION
If Not IsEmpty(queries) Then s = s & vbNewLine & "Запрос №" & i & ": " & queries(i)
OpenForm "Сообщение_F",,,,, acDialog, s,, False
End Select
SysCmd acSysCmdClearStatus
Exit Function
Resume
End Function
Public Function isNothing(V As Object) As Boolean
isNothing = (TypeName(V) = "Nothing")
End Function
|
|
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!