Линкование таблиц Access

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Линкование таблиц Access

Сообщение SLIM » 26.10.2008 (Вс) 16:05

Возникла трудность линкования таблиц. Как задать путь линкования относительно пути расположения базы данных.
У меня при перемещении базы данных на другой компьютер все слетает(ну естесственно)....По поиску ничего не нашел.
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Линкование таблиц Access

Сообщение iGrok » 26.10.2008 (Вс) 20:24

По-моему никак. Либо менять через ADOX "на лету" (не рекомендую), либо программно при запросах указывать путь к бд.
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 26.10.2008 (Вс) 20:31

iGrok писал(а):По-моему никак. Либо менять через ADOX "на лету" (не рекомендую), либо программно при запросах указывать путь к бд.

Ну ты прям знаток баз данных.....
Ну на самом деле я тоже не нашел как это возможно сделать программно.
Вроде бы в DAO есть какие-то средства - но на первый взгляд все примеры были не на эту тему. Может быть просто глубоко в них не вдумывался (ибо не работал с DAO и не собираюсь)
Опять таки без линкования никак. Переписывать проект не хочется никак...
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Линкование таблиц Access

Сообщение iGrok » 26.10.2008 (Вс) 22:28

SLIM писал(а):
iGrok писал(а):По-моему никак. Либо менять через ADOX "на лету" (не рекомендую), либо программно при запросах указывать путь к бд.

Ну ты прям знаток баз данных.....
Ну на самом деле я тоже не нашел как это возможно сделать программно.
Вроде бы в DAO есть какие-то средства - но на первый взгляд все примеры были не на эту тему. Может быть просто глубоко в них не вдумывался (ибо не работал с DAO и не собираюсь)
Опять таки без линкования никак. Переписывать проект не хочется никак...

Не такой уж и знаток.. Просто последние пару лет работал именно со связкой Access mdb + dbf, и со всеми этим проблемами сталкивался. )
Проблему с линковкой так и не решили. Учитывая, что бд была в формате 97го аксесса, приходилось его держать на машине, чтобы менять линковку, когда надо. ) Благо приходилось это делать только при открытии нового магазина.

Если нужна выборка только из одной таблицы - то всё просто. Делаем
select * from [table.dbf] in 'c:\path' 'dBase III;'

А вот если нужна выборка из нескольких таблиц, спасает только линковка.

Хотя.. Я сейчас вспомнил. Попробуй всё-таки ADOX.
У меня в примере, который я тебе давал, есть и его использование. )
Смотреть frmMain.OpenCat
Там строка: oCat.Tables(i).Properties.Item(6).Value = "c:\pr_d2.mdb"
Изменяет путь к связанной таблице. Только желательно имя параметра проверять. Посмотри в отладчике.. В общем, копать в ту сторону. ))
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 26.10.2008 (Вс) 23:18

iGrok писал(а):Не такой уж и знаток.. Просто последние пару лет работал именно со связкой Access mdb + dbf, и со всеми этим проблемами сталкивался. )

Ну тогда понятно.

iGrok писал(а):Если нужна выборка только из одной таблицы - то всё просто. Делаем
select * from [table.dbf] in 'c:\path' 'dBase III;'

Ну как знаешь выборку нужно делать не из одной таблицы
iGrok писал(а):Хотя.. Я сейчас вспомнил. Попробуй всё-таки ADOX.

Конечно за предложение спасобо....но уж ну его. Привык к ADO и все тут. Лучше я напишу Readme для установки линков.
А данная ситуация говорит лишь об одном - нужно придумать ка написать автолинковку БД. Это уже интереснее
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Линкование таблиц Access

Сообщение iGrok » 26.10.2008 (Вс) 23:49

SLIM писал(а):
iGrok писал(а):Хотя.. Я сейчас вспомнил. Попробуй всё-таки ADOX.

Конечно за предложение спасобо....но уж ну его. Привык к ADO и все тут. Лучше я напишу Readme для установки линков.
А данная ситуация говорит лишь об одном - нужно придумать ка написать автолинковку БД. Это уже интереснее

Ты б хоть посмотрел, про что я, перед тем, как отвечать. Или пост дочитал до конца.
Для работы с БД ты всё равно будешь использовать ADO, ничего переписывать не придётся.
Через ADOX можно изменить БД. К примеру, поменять линковку таблицы..
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 27.10.2008 (Пн) 8:50

Попробую
Пишите жизнь на чистовик.....переписать не удастся.....

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Линкование таблиц Access

Сообщение Lenny » 31.10.2008 (Пт) 18:21

У меня тоже возникла проблема. Линкую датабасе на аксесс 97с SQLServer DB. Линкую через ODBC. Со вчерашнего дня почему то стала спрашивать пароль когда обращаюсь к таблицам. Хоть UID и PWD занесены в ODBC. Ломаю голову что могло случиться, не держит пароль хоть тресни. Даже это не помогает cnnDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\******\shellsql.mdb;Mode=Share Deny None;Persist Security Info=False", "uid", "pwd", где uid и pwd равны паролям и id. Может кто нибудь может что нибудь посоветовать?
Заранее спасибо.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 31.10.2008 (Пт) 23:05

Код: Выделить всё
Cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & strPathToBase & ";Jet OLEDB:Database Password=********;")

У меня такой варинат работает.
Пишите жизнь на чистовик.....переписать не удастся.....

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Линкование таблиц Access

Сообщение Lenny » 31.10.2008 (Пт) 23:17

Ну я понимаю что работает, у меня в среду он тоже работал) Проблема в том, что не могу понять почему ODBC стал требовать пароль даже при таком соеденении.....

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 31.10.2008 (Пт) 23:42

А программно вообщето он всегда пароль требовал. Если конечно база запоролена :roll:
Пишите жизнь на чистовик.....переписать не удастся.....

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Линкование таблиц Access

Сообщение Lenny » 01.11.2008 (Сб) 0:42

Разве не достаточно того что пароль внесён в ОДБС? Работало же, а сйчас даже и не знаю что думать и откуда начать искать проблему

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Линкование таблиц Access

Сообщение iGrok » 01.11.2008 (Сб) 2:28

А пароль и имя вообще ещё действуют? А если пересоздать ODBC-соединение?
label:
cli
jmp label

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Линкование таблиц Access

Сообщение Денис » 01.11.2008 (Сб) 8:34

Lenny писал(а):у меня в среду он тоже работал)

Проверь, не было ли обновлений. Они (обновления) могут вносить коррективы в политики безопасности.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Линкование таблиц Access

Сообщение Lenny » 03.11.2008 (Пн) 17:26

Денис писал(а):
Lenny писал(а):у меня в среду он тоже работал)

Проверь, не было ли обновлений. Они (обновления) могут вносить коррективы в политики безопасности.

А вот с этого места можно подробнее, обновление было. Обнавлялась одна база, но в принципе как могло повлиять запись данных, на то что пароль перестал сохраняться в ODBC? Возможное лечение? Update всего MSSQL Server???

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Re: Линкование таблиц Access

Сообщение Lenny » 03.11.2008 (Пн) 17:28

iGrok писал(а):А пароль и имя вообще ещё действуют? А если пересоздать ODBC-соединение?

Да, пароль и имя действуют, переделывали это ODBC уже много раз, не помогает.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 07.11.2008 (Пт) 16:24

В продолжении.....
Теперь нужно слинковать таблицы, только они открыты другим пользователем другой использующей эти таблицы программой
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Линкование таблиц Access

Сообщение iGrok » 07.11.2008 (Пт) 23:31

SLIM писал(а):В продолжении.....
Теперь нужно слинковать таблицы, только они открыты другим пользователем другой использующей эти таблицы программой

Чего? 0_o
Подробнее.
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 08.11.2008 (Сб) 0:50

iGrok писал(а):Чего? 0_o
Подробнее.

Значитца так.
Есть dbf файлы. Они используются одной древней программой - сетевое приложение. Соответственно файлы эти в сети лежат. Так как они используются - они постоянно как бы открыты. И я не могу прилинковать такую таблицу почему-то. Хотя на самом деле хочу не это - хочу напрямую обращаться к ним сразу. А это тем более невозможно - так вот как это сделать возможным я и пытаюсь спросить
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Линкование таблиц Access

Сообщение iGrok » 08.11.2008 (Сб) 1:12

SLIM писал(а):
iGrok писал(а):Чего? 0_o
Подробнее.

Значитца так.
Есть dbf файлы. Они используются одной древней программой - сетевое приложение. Соответственно файлы эти в сети лежат. Так как они используются - они постоянно как бы открыты. И я не могу прилинковать такую таблицу почему-то. Хотя на самом деле хочу не это - хочу напрямую обращаться к ним сразу. А это тем более невозможно - так вот как это сделать возможным я и пытаюсь спросить
Эээ..
Может, меня кто-то поправит.. Но лично я не знаю валидного способа их открыть..

Из "на попробовать":
- выставлять Connection.Mode = adModeReadOnly (так, кажется). М.б. поможет.
- использовать строку подключения: Provider=MSDASQL;Driver={Microsoft dBASE Driver (*.dbf)};DriverID=533;DBQ=путь_к_папке_с_дбф

Если ни то, ни другое, ни оба вместе не помогут - тогда либо никак, либо ждём кого-то более знающего ).
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 11.11.2008 (Вт) 15:09

Ну я так понял что выхода нет? Что постоянно копировать таблицы весом по 20 метров?
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Линкование таблиц Access

Сообщение iGrok » 11.11.2008 (Вт) 18:51

А что, указанные варианты всё-таки не помогли? По идее с adModeReadOnly(или adModeRead ? не помню) должен открывать..

Как вариант, переписать софтину, которая с ними работает, чтобы не держала в заблокированном состоянии..
Если файл вообще на чтение открывается, но аксесс его никак не хочет брать - как ещё один вариант читать Dbf самому..
Опять же, копировать..

З.Ы. Я не говорю, что выхода нет. Я говорю, что не знаю простого выхода.
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 11.11.2008 (Вт) 22:58

iGrok писал(а):А что, указанные варианты всё-таки не помогли? По идее с adModeReadOnly(или adModeRead ? не помню) должен открывать..

Я просто подохревал что линкование можно сделать не программно. И все равно OnlyRead не помогает.
iGrok писал(а):Как вариант, переписать софтину, которая с ними работает, чтобы не держала в заблокированном состоянии..

Не представляется возможным. Софтина во-первых консолевская, во-вторых постоянно поддерживается разработчиком - и дополнение\изменение платное, а фирма платить за это не будет точно
iGrok писал(а):Если файл вообще на чтение открывается, но аксесс его никак не хочет брать - как ещё один вариант читать Dbf самому..

Самому это как?
iGrok писал(а):Опять же, копировать..

Тоже не вариант. Предполагается что если таблица не линкуется напрямую, то таблица переносится (копируется) на локальный ПК, потом перелинковывается при необходимости. И все это при загрузке приложения. Теперь представь сколько копируются такие веские файлы при открытии программы....
iGrok писал(а):З.Ы. Я не говорю, что выхода нет. Я говорю, что не знаю простого выхода.

Не спорю. Просто подумал что тема либо не интересна никому, либо ответа нет....
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Линкование таблиц Access

Сообщение iGrok » 12.11.2008 (Ср) 1:17

SLIM писал(а):
iGrok писал(а):Если файл вообще на чтение открывается, но аксесс его никак не хочет брать - как ещё один вариант читать Dbf самому..

Самому это как?

Нарыть формат dbf-файла..
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Линкование таблиц Access

Сообщение SLIM » 12.11.2008 (Ср) 10:36

iGrok писал(а):Нарыть формат dbf-файла..

Ны....понятнее не стало
Пишите жизнь на чистовик.....переписать не удастся.....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Линкование таблиц Access

Сообщение iGrok » 12.11.2008 (Ср) 12:24

SLIM писал(а):
iGrok писал(а):Нарыть формат dbf-файла..

Ны....понятнее не стало

Всё равно это актуально только при условии, что файл вообще открывается чем-нить, типа hex-редактора.
Обрабатывать dbf самому, а не через движок БД. Искать в гугле по словам "парсер DBF".
Ну никак ты его не откроешь, если его эксклюзивно заблокировала другая прога.

Кстати, что за ошибку при линковке выдаёт?
label:
cli
jmp label


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList