powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переподключение таблиц с сохранением индексов
16 сообщений из 16, страница 1 из 1
Переподключение таблиц с сохранением индексов
    #32149076
radik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Вопрос такой.

Access. в нем присоедены table и view из MS SQL через ODBC.

Так вот при переподключении таблиц (изменяю connect и делаю refreshlink) во view теряются напрочь индексы, расстановленные при первом подсоединении таблицы.


Из хелпа

При использовании метода RefreshLink свойства присоединенной таблицы и объекты Relation не изменяются.


???
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149084
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Врет хелп
Убивай связь - линкуй заново
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149086
radik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ответ мне не очень понятен ?
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149121
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какое слово не понятно?
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149135
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149141
radik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо. Я немного непонимаю как это сделать програмно.
Я пишу пока так, что дальше и какие еще свойства менять я не знаю.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
'Открываю соединения 
Set MSSQLDB = DBEngine.OpenDatabase(CNT_DataSourceName, dbDriverComplete, False, CNT_DataSource)
Set MSACCDB = CurrentDb

'перебираю все ODBC таблицы
For i =  0  To MSACCDB.TableDefs.Count -  1 
    If (MSACCDB.TableDefs(i).Attributes And dbAttachedODBC) Then

'создаю новую таблицу и пихаю все свойства старой 

        Set TDef = MSACCDB.CreateTableDef(MSACCDB.TableDefs(i).Name)
        TDef.Connect = MSSQLDB.Connect
        TDef.SourceTableName = MSACCDB.TableDefs(i).SourceTableName

'удаляю таблицу             
        MSACCDB.TableDefs.Delete MSACCDB.TableDefs(i).Name

'и добавляю новую              
        MSACCDB.TableDefs.Append TDef
        Set TDef = Nothing
    End If
Next i
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149153
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты умеешь програмно индексные поля задавать для ODBC соединений? Я как то не научился. Поэтому всегда ручками прилинковывал. Может, кто научит?
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149190
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
научу, милок, научу
create unique index rr on dbo_ff (Код ASC)
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149194
radik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот я точно ни фига не понял, где, как, чего ?
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149198
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хам, ты чего? Грибов поел?
Ты где у объекта TableDef видел такие слова??
Или я дурак, или здесь присоединенные таблицы обсуждаются, а не язык SQL.
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149204
radik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
короче понял по-моему я

Индексы можно создать либо через db.execute "create index " и т.д.

Либо через DAO - но никто не знает как
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149221
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я сам лично создал
индекс при помощи
запроса create unique index rr on dbo_ff (Код ASC)
rr - название индекса
dbo_ff - связанная таблица
Код - имя поля
ASC - сами знаете что
с сервера
пора бы уже научится
это еще в А2000 работало
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149226
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это очень круто, что ты сам создал индекс!!! Поздравляю!!!
Только, как я понял, проблема в том, что обновлении связанных таблиц слетают поля, указанные как уникальный индекс при подключении таблицы через ODBC. Если не так, то мне уже пора спать :)
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149234
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я про то и толкую
слетают идексы
вот и востанавливай
как я написал выше
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149240
radik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВСЕ ТЕМА ЗАКРЫТА - ИНДЕКСЫ СЛЕТАЮТ !
ВОССТАНАВЛИВАТЬ ИХ НАДО ВРУЧНУЮ ЧЕРЕЗ db.execute "create index ...", по другому (например через DAO) как сделать никто не знает
...
Рейтинг: 0 / 0
Переподключение таблиц с сохранением индексов
    #32149312
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм.. Истину глаголет отрок Хам... Никогда бы не подумал что так можно...
Ну спасибо, а то так бы и помер я дураком.
Осталось эту хрень в 97-м попробовать. Чтобы убедиться что она не работает :))
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переподключение таблиц с сохранением индексов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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