Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Таблица.Update избежания ошибки / 7 сообщений из 7, страница 1 из 1
11.03.2013, 00:31
    #38179254
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица.Update избежания ошибки
Поле "FullPath" в базе данных Access обозначено как индексированное поле где значения не повторяются. В момент MDB_Links.Update само собой будет ошибка если запись повторится. Как можно отловить возмущения ядра базы данных чтоб не доводилось ставить on error goto.... чтоб свободно узнать и поставить CancelUpdate. Без дополнительного поиска и запроса. Думаю такое должно быть предвидено.

MDB_Links.AddNew
MDB_Links("FullPath") = LCase(Trim(RealNameLink))
MDB_Links("LinkPath") = LCase(Trim(Pth))
MDB_Links.Update
...
Рейтинг: 0 / 0
11.03.2013, 00:34
    #38179258
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица.Update избежания ошибки
не хочу просто такой безобразии (((
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Function AddToTmpLink(ByVal RealNameLink As String, ByVal Pth As String) As Boolean
  'If PerevirkaNayavnostiFile(Pth) = False Then Exit Function
  MDB_Links.AddNew
  MDB_Links("FullPath") = LCase(Trim(RealNameLink))
  MDB_Links("LinkPath") = LCase(Trim(Pth))
  'MDB_Links("LenFile") = FNFileLen(Pth)
  On Error GoTo er
  MDB_Links.Update
  AddToTmpLink = True
dali:
  On Error GoTo 0
 Exit Function
er:
  MDB_Links.CancelUpdate
  Resume dali
End Function
...
Рейтинг: 0 / 0
11.03.2013, 00:38
    #38179259
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица.Update избежания ошибки
Ну безобразию, положим, можно упростить до линейного алгоритма:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Function AddToTmpLink(ByVal RealNameLink As String, ByVal Pth As String) As Boolean
  'If PerevirkaNayavnostiFile(Pth) = False Then Exit Function
  MDB_Links.AddNew
  MDB_Links("FullPath") = LCase(Trim(RealNameLink))
  MDB_Links("LinkPath") = LCase(Trim(Pth))
  'MDB_Links("LenFile") = FNFileLen(Pth)
  On Error GoTo Resume Next
  MDB_Links.Update
  If Err<>0 Then
    MDB_Links.CancelUpdate
  Else
    AddToTmpLink = True
  End If
End Function
...
Рейтинг: 0 / 0
11.03.2013, 00:38
    #38179260
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица.Update избежания ошибки
Опа.. а счетчик в любом случае "+1" считает и в случае успешного добавления и в случае запрета
...
Рейтинг: 0 / 0
11.03.2013, 00:39
    #38179261
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица.Update избежания ошибки
Андрей159Опа.. а счетчик в любом случае "+1" считает и в случае успешного добавления и в случае запретада, а ты хотел непрерывности счетчика? Не выйдет, не для того он предназначен.
...
Рейтинг: 0 / 0
11.03.2013, 00:41
    #38179262
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица.Update избежания ошибки
хотя мне это не помеха.

Короче, нет на Update типа как функции (я так понял) чтоб дало к примеру true - обновило или false - не может обновить. Будет ошибка в любом случае и только через On Error и никак по другому ?
...
Рейтинг: 0 / 0
11.03.2013, 00:44
    #38179263
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица.Update избежания ошибки
Ну, нет так нет. Все мелочи. Главное что работает.
Спасибо
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Таблица.Update избежания ошибки / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]