powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Странная фигня с прилинкованными таблицами
2 сообщений из 2, страница 1 из 1
Странная фигня с прилинкованными таблицами
    #39678189
IFK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IFK
Гость
Уважаемый форум,

Нужна помощь: есть Акс 2016 с линкованными таблицами с SQL Server. При старте приложения происходит обмен данными между локальными и линкованными таблицами в цикле по всем линкованным таблицам. Проблема: при первом проходе первая линкованная таблица ("ACC_BLEND_ARCHIVE") выдает ошибку ODBC-call failed. Если ее пропустить в коде, все остальные таблицы проходят нормально. Если любую линкованную таблицу дернуть руками перед выполнением обмена, тоже все проходит нормально.

Пробую обновить связи перед выполнением обмена данными - не помогает. Пробую дернуть таблицу рекордсетом - тот же эффект. Есть идеи?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
For Each tb In CurrentDb.TableDefs
     If Left(tb.Connect, 4) = "ODBC" Then
       tb.Connect = "ODBC;DRIVER=SQL Server Native Client 10.0;SERVER=Server1;;Trusted_Connection=Yes;APP=Microsoft Office 2016;DATABASE=DB1;"
       tb.RefreshLink
    End If
Next tb

For Each tb In CurrentDb.TableDefs
    If Left(tb.Connect, 4) = "ODBC" Then
        tbl_name = Right(tb.Name, Len(tb.Name) - 4)
        Select Case tbl_name
        Case "ACC_CQI"
            db.Execute ("DELETE FROM " & tb.Name & " WHERE(CLV_MOPI_NO in (SELECT CLV_MOPI_NO FROM " & tbl_name & " WHERE(RECORD_VERSION=-1)))")
            db.Execute ("INSERT INTO " & tb.Name & " SELECT * FROM " & tbl_name & " WHERE(RECORD_VERSION=-1)"), dbSeeChanges
            db.Execute ("UPDATE " & tbl_name & " SET RECORD_VERSION=0")
        Case "ACC_BLEND_ARCHIVE", "ACC_BLEND_ARCHIVE_ORT", "ACC_BLND"
            rs.Open ("SELECT * FROM " & tb.Name & ""), db, adOpenDynamic, adLockOptimistic
            If rs.EOF = False Then rs.MoveLast
            rs.Close
            db.Execute ("INSERT INTO " & tb.Name & " SELECT * FROM " & tbl_name & " WHERE(RECORD_VERSION=-1)"), dbSeeChanges                          <= тут ошибку выдает
            db.Execute ("UPDATE " & tbl_name & " SET RECORD_VERSION=0")
        End Select
    End If
Next tb
...
Рейтинг: 0 / 0
Странная фигня с прилинкованными таблицами
    #39684109
LightN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IFK,
У меня такое было. Оказалось, что на прилинкованных таблицах было всё ОК, а на прилинкованных View - проблема. При перелинковке на View пропадали куда-то ключевые индексы. Сохранил, восстановил, всё заработало.
Код: sql
1.
2.
3.
4.
For Each ...
       txt = "CREATE UNIQUE INDEX PrimaryKey On [" & Me![TableName] & "] (" & Me![PrimaryIdFields_IDX] & ") With PRIMARY;"
       CurrentDb.Execute txt, dbFailOnError
Next ...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Странная фигня с прилинкованными таблицами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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