Страница: 1 | 2 |
Вопрос: Как прописать БД в текущещей директории exe-шника?
Добавлено: 27.05.06 22:26
Автор вопроса: nata
Привет! Помогите,пожалуйста,неопытному в вопросах программирования человеку решить такую проблему: создаю программу,которая использует БД на своем компьютерев строке DataSource прописываю путь к этой БД.т.е. указываю путь к конкретной папке,где она и лежит. Делаю из программы экзешник,затем запускаю на другом компьютере,и программа естественно не может загрузить эту БД,т.к. не видит ее. Нужно как-то прописать БД в ту же директорию,что и экзешник,чтоб программа запускалась на разных компьютерах.А как-этого я не могу понять :( Поэтому и обращаюсь к умным людям за помощью!Очень надеюсь на ответ :)
Ответы
Всего ответов: 22
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 27.05.06 23:14
msgbox App.Path ?
Номер ответа: 2
Автор ответа:
nata
Вопросов: 1
Ответов: 10
Профиль | | #2
Добавлено: 27.05.06 23:19
А куда это нужно написать?у меня msflexgrid связан с БД в Access,в его свойстве data source прописан путь к БД.вообще не могу понять,как сделать ,чтоб на других компьютерах работало
Номер ответа: 3
Автор ответа:
Артем
ICQ: 312119975
Вопросов: 0
Ответов: 6
Профиль | | #3
Добавлено: 28.05.06 00:48
Попробуй не прописывать путь к конкретной папке с базой, а получить путь где находится программа с помощью
[B][I]src=Directory.GetCurrentDirectory()[/I][/B]
и прописать его с именем базы в свойствах.
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 28.05.06 03:42
куда я попал, где мои вещи?
дотнетовцы атакуют...
Номер ответа: 5
Автор ответа:
nata
Вопросов: 1
Ответов: 10
Профиль | | #5
Добавлено: 28.05.06 10:06
Всем спасибо! Сейчас попробую
Номер ответа: 6
Автор ответа:
SRV
ICQ: 254226129
Вопросов: 30
Ответов: 107
Профиль | | #6
Добавлено: 29.05.06 09:50
Data1.DataBasename = App.Path & "\base.mdb"
Data1.RecordSource = "SELECT * FROM Main"
Data1.Refresh
DoEvents
только база должна лежать вместе с экзешником в этом случае
Номер ответа: 7
Автор ответа:
nata
Вопросов: 1
Ответов: 10
Профиль | | #7
Добавлено: 29.05.06 11:21
Спасибо за помощь!
Номер ответа: 8
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #8
Добавлено: 29.05.06 23:20
Тогда и Пат не нужен
Номер ответа: 9
Автор ответа:
nata
Вопросов: 1
Ответов: 10
Профиль | | #9
Добавлено: 30.05.06 09:54
Сразу сорри за глупые вопросы Т.е.путь не надо указывать,что ли? А что тогда надо? У меня еще вопрос-если путь к базе я пишу не в самом коде, а в свойстве DataBaseName указываю,есть какая-то разница?
Номер ответа: 10
Автор ответа:
nata
Вопросов: 1
Ответов: 10
Профиль | | #10
Добавлено: 30.05.06 14:24
Всем огромное спасибо за помощь! Но проблема все-таки осталась. Мне объяснили следующее: Расследование показало следующее. Моя программа для доступа к БД использует Microsoft Jet Database Engine версии 3.5. Это - объект системы DAO доступа к данным машины.
>Путь к нему прописан в реестре под строкой HKEY_CLASSES_ROOT\CLSID\00000010-0000...2EA4
А физически это должно быть в файле C:\Program Files\Common Files\Microsoft Shared\DAO\DAO350.DLL
На другой машине этого нет.
Есть новая версия DJDB 3.6, прописываемая в
HKEY_CLASSES_ROOT\CLSID\00000100-0000...2EA4
Разница в положении единицы в первой пачке цифр.
А уж эта ерунда живет в файле C:\Program Files\Common Files\Microsoft Shared\DAO\DAO360.DLL
Вот отсюда и нестыковки,поэтому экзешник не запускается...
Можно как-то это исправить и что для этого нужно сделать? Очень все непонятно...
Номер ответа: 11
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #11
Добавлено: 30.05.06 18:52
Да, зарегестрировать *.DLL программой regsvr32.exe она с виндой идёт, запустить через Shell можно...
Номер ответа: 12
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #12
Добавлено: 31.05.06 22:14
яб скачал и установил новый джет
ищи в майкрософт даунлоаде последний MDAC
Номер ответа: 13
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #13
Добавлено: 01.06.06 00:26
А мне кажется у нее беда совершенно в другом..
Поскольку она юзает DAO 3.5 а на другой машине есть 3.6.. то про регистрацию и новый Jet можно забыть.. ибо это не играет в данном случае никакой роли...
НО!
По всей видимости, она в свойстве DataBaseName жестко прописала путь к БД. Соответветственно, програма ищет базу именно по этому пути, которая вполне вероятно на другой машине расположена совершенно в другом месте.. Отсюда и все вытекающие последствия...
Номер ответа: 14
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #14
Добавлено: 01.06.06 00:32
А если это именно так то возвращаемся к посту №1 и юзаем App.Path, либо на другой машине кладем базу именно в ту папку, которая прописана в DataBaseName
Номер ответа: 15
Автор ответа:
nata
Вопросов: 1
Ответов: 10
Профиль | | #15
Добавлено: 02.06.06 12:54
Ага, всем спасибо! Вообще, я и сама не могу понять, где ошибка. Базу я вроде переложила, но ошибка осталась. Получается все-таки, еще и разница в версиях DAO играет роль! Получается, надо скачивать?