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

Вопрос: раньше прилинковывал таблицы к базе используя

Call RelinkTable("c:\baza.mdb", sTableArray)

СВозникла необходимость прилинковывать таблицы с другого компьютера, соотв. указываю имя компьютера:

Call RelinkTable("\\dima\c\baza.mdb", sTableArray)

Результат - время прилинковки возросло с 2-3 сек до 20 сек, и это при том что база с таблицами и база с кодом находится на одном компьютере

Подскажите, может есть какой то другой синтаксис обращения к компьютеру в сети? Как сократить время прилинковки??

Спасибо заранее
25 ноя 04, 14:03    [1135252]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
пропустил вероятно ,с какой версии Access появилась подпрограммка RelinkTable ?
25 ноя 04, 14:13    [1135294]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
Димасик
Guest
У меня Access 2003, но relinktable это функция

Может кто все-таки знает ответ на мой вопрос, аа?

Спасибо заранее
25 ноя 04, 15:45    [1135827]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Димасик
но relinktable это функция

Я не берусь отлаживать функцию не глядя. Могу только предположить, что ошибка в ее пятой строке, в 11-м символе.
25 ноя 04, 15:55    [1135895]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
Димасик
У меня Access 2003, но relinktable это функция

Может кто все-таки знает ответ на мой вопрос, аа?

Спасибо заранее

1 те же вежливо намекнули ,что relinktable самописная
2 откуда компик узнаёт IP адрес Димы - т.е. как устроена сеть ты не написал
3 напиши \\192.168...\share - посмотри скорость
25 ноя 04, 16:00    [1135925]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
Димасик
Guest
Намек понял

Вот такая функция, мне на форуме же ее и подсказали


Dim j As Integer, oldConnectString
Dim dbs As Database
Dim tdf As TableDef
Dim lngX As Long

RelinkTable = False

Set dbs = CurrentDb
(sTableArray) + 1
lngX = 0

For j = LBound(sTableArray) To UBound(sTableArray)

Set tdf = dbs.TableDefs(sTableArray(j))

If Len(tdf.Connect) > 0 Then
oldConnectString = tdf.Connect
tdf.Connect = ";DATABASE=" & sBase
tdf.RefreshLink
End If
lngX = lngX + 1
Next

RelinkTable = True

RelinkTable_exit:

dbs.Close
SysCmd acSysCmdClearStatus

Exit Function

Попробовал

Dim sTableArray(7) As String
sTableArray(0) = "facturas"
sTableArray(1) = "facturas_references"
sTableArray(2) = "invoices"
sTableArray(3) = "invoices_references"
sTableArray(4) = "invoices_categories"
sTableArray(5) = "pagare_operations_facturas"
sTableArray(6) = "bank_operations_facturas"
sTableArray(7) = "balances"
Call RelinkTable("\\192.168.1.104\c\baza.mdb", sTableArray)

Время прилинковки не уменьшилось

Спасибо заранее
25 ноя 04, 16:54    [1136126]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
А в чем собственно беда ?

Обычно связь с таблицами устанавливается при первом старте приложения на новом месте. Потом достаточно проверить select (*) from table. Можно в цикле по всем таблицам. А за 30 секунд на форме-заставке что-нибудь красивое по таймеру изображать.

Вообще разделенные таблицы в MDB по скорости работы - караул. Надо человеческий ADP делать.
25 ноя 04, 17:00    [1136141]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
Shuhard
Member

Откуда:
Сообщений: 4998
Программист-Любитель

Вообще разделенные таблицы в MDB по скорости работы - караул. Надо человеческий ADP делать.

1 мдя - любитель однако
скорость у линкованных таблиц может быть в разы выше сиквела,падают чаще и правами не порулить.
2 а когда руками перелинковываешь - скорость какая ?
25 ноя 04, 17:10    [1136185]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
>> скорость у линкованных таблиц может быть в разы выше сиквела

Громко, с надрывом: НЕ ВЕРЮ!
25 ноя 04, 19:04    [1136645]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
borisb
Member

Откуда:
Сообщений: 193
Есть такая проблема...
У меня клиентская часть аж ~10 мин. "перелинковывается" по UNC-пути ("\\..."), хорошо что хоть не часто ее меняю :). Таблиц там больше сотни...

Выход действительно в использовании хотябы "виртуального" драйва - сетевого диска, смапированного заранее. Т.е. путь "x:\..." будет быстрее при прочих равных(*) чем "\\...".

(*): Можно создать VLAN'ы(**) по 1 клиенту и серверу в каждом, таким образом избежать опроса сети и "не тыкаться" во все порты на коммутаторах/хабах...

(**): Если, конечно, и карточки клиентов, и сетевое активное оборудование, и сама карточка в сервере поддерживают создание VLAN'ов, но... это разговор другой тематики, но выйти из ситуации таким способом можно ;)

P.S.: Я не сделал у себя путь типа "x:\..." по причине "псевдонедоступности" сетевого ресурса с таблицами :) - чтобы через проводник не шастали туда лишний раз...
26 ноя 04, 15:44    [1139471]     Ответить | Цитировать Сообщить модератору
 В догонку...  [new]
borisb
Member

Откуда:
Сообщений: 193
Еще на скорость той же перелинковки заметно влияет "занятость" самой табличной части (к чему линкуешься), т.е. сидят/работают с ней или нет... Но и архитектура сети тоже немаловажна
26 ноя 04, 15:54    [1139526]     Ответить | Цитировать Сообщить модератору
 Re: прилинковка таблиц  [new]
sraider
Member

Откуда:
Сообщений: 325
Димасик
Народ

Вопрос: раньше прилинковывал таблицы к базе используя

Call RelinkTable("c:\baza.mdb", sTableArray)

СВозникла необходимость прилинковывать таблицы с другого компьютера, соотв. указываю имя компьютера:

Call RelinkTable("\\dima\c\baza.mdb", sTableArray)

Результат - время прилинковки возросло с 2-3 сек до 20 сек, и это при том что база с таблицами и база с кодом находится на одном компьютере

Подскажите, может есть какой то другой синтаксис обращения к компьютеру в сети? Как сократить время прилинковки??

Спасибо заранее


Видимо, к этому файлу подключены другие пользователи. Как сократить время прилинковки?? Перейти с Microsoft Jet на SQL Server.
26 ноя 04, 16:50    [1139817]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить