Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.207.151] |
|
Страницы: (4) [1] 2 3 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Добрый день. Прошу помощи при работе с БД.
1. Подключил к проекту БД таким образом: Меню Database->Explorer. Меню Object->ODBC Administrator. Добавить .mdb, указываю путь к БД Access, потом OK, OK. При запуске проекта появляется сообщение Database login, которое требует Имя и пароль. Ничего не ввожу, нажимаю ОК, дальше всё нормально. Что это за окно и как от него избавиться при запуске программы? 2. Проект работает с БД только тогда, когда она лежит на C:\MyDataBase.db; Куда не засуну в другое место - выходит сообщение об ошибке. В чём проблема? И как от неё избавится? 3. При переносе БД на другой компьютер - БД вообще не работает. |
Сообщ.
#2
,
|
|
|
Цитата Expected } @ Как-то очень сложно.Меню Database->Explorer. Меню Object->ODBC Administrator. Добавить .mdb, указываю путь к БД Access, потом OK, OK Цитата Expected } @ Что это за окно и как от него избавиться при запуске программы? Указать LoginPrompt = False Цитата Expected } @ Совершенно верно. Программе надо указать где файл лежит. Сама она искать файлы не умеет. Обращается по пути и имени из п.1. В Вашем случае, наверное, надо смотреть куда настроено ODBC. Но повторю, Вы выбрали слишком витееватый способ.Куда не засуну в другое место - выходит сообщение об ошибке Цитата Expected } @ Или каждый раз менять руками настройки перед запуском илли использовать другой способ подключения. Например OLEDB и MicrosoftJet.И как от неё избавится? Цитата Expected } @ Это естественно вытекает из предыдущего пункта. При переносе БД на другой компьютер - БД вообще не работает. |
Сообщ.
#3
,
|
|
|
Цитата Как-то очень сложно. А как по другому подключить БД? Что бы не было всей этих проблем? Цитата LoginPrompt = False Это в обработчике событий како-го то компонента? |
Сообщ.
#4
,
|
|
|
Акцесс не надо подключать через ODBC лучший вариант через родного для него провайдера, через JET и тогда проблем не будет, очень легко изменить строку подключения на нужную.
|
Сообщ.
#5
,
|
|
|
Подключил через JET проблем меньше стало. Но на другом компьютере всё равно нужно указывать путь. Как сделать так, что бы ADOconnection1 сам подключал БД, которая находится по адресу "Database\MyDatabase.db"? А сама папка Database находится в той же папке что и ехе-шник
|
Сообщ.
#6
,
|
|
|
Цитата Expected } @ Формировать стоку подключения до коннекта к БДКак сделать так, что бы ADOconnection1 сам подключал БД, которая находится по адресу Почитать про Aplication.ExeName, и ExtractFileDir |
Сообщ.
#7
,
|
|
|
в событии OnCreate твоего DataModule добавь примерно так
создать ConnectionString где адрес файла бд будет указан вот так dbfile := ExtractFileDir(Application.ExeName) + 'Database\MyDatabase.db'; и вообще при использовании файлов в своей программе путь к ним нужно задавать таким вот способом. |
Сообщ.
#8
,
|
|
|
Expected } как вариант - создай ini-файл с параметрами подлючения. К примеру:
[ddt] dbtype=local charset=WIN1251 [dbloc] dplpath=c:\ib\legenda dblname=LEGDB.GDB [dbnet] dbnip= dbnport= dbnname= [gwnd] height=602 width=813 [settings] dateformat=DD.MM.YYYY timeformat=HH:NN:SS dayfound=30 Добавлено потом просто считывай при старте ini-шку и списывай из неё всё, что тебе нужно. К примеру, я указал: секция [ddt] dbtype=local ----- тип базы, локальная или сетевая charset=WIN1251 ------- кодовая страница секция [dbloc] ---настройки для локальной базы dplpath=c:\ib\legenda ------- каталог базы dblname=LEGDB.GDB ---------имя базы секция [dbnet] -------если база сетвая dbnip= --------ip сервера dbnport= -------порт, на котором база открыта dbnname= ------- sid базы секция [gwnd] -------параметры главного окна height=602 width=813 /хотя здесь можно и иначе, но я так сделал/ секция [settings] -------установки dateformat=DD.MM.YYYY --------фомрат даты timeformat=HH:NN:SS ---------формат времени dayfound=30 --------период стартовой выборки ЗЫ. IB & D7 |
Сообщ.
#9
,
|
|
|
Цитата VahaC @ в событии OnCreate В OnCreate не сработало, а вот в собтытии BeforeConnection ADOConnection1 получилось |
Сообщ.
#10
,
|
|
|
Цитата Expected } @ В OnCreate не сработало, а вот в собтытии BeforeConnection ADOConnection1 получилось Это потому что у тебя в design time ADOConnection1.Connected установлено в тру |
Сообщ.
#11
,
|
|
|
Цитата Expected } @ Подключил через JET проблем меньше стало. Но на другом компьютере всё равно нужно указывать путь. Как сделать так, что бы ADOconnection1 сам подключал БД, которая находится по адресу "Database\MyDatabase.db"? А сама папка Database находится в той же папке что и ехе-шник Подобным программам не место в Виндоус, они не живые, не надо пытаться писать в Program Files Что мешает это делать в d:\Databases с должными правами. |
Сообщ.
#12
,
|
|
|
Цитата Anatoly Podgoretsky @ они не живые А можно обяснить что это значить? |
Сообщ.
#13
,
|
|
|
Попадешься на машину с норамальными правами, а не администраторскпми для всех и сразу поймешь, что это значит.
Сообственно не надо даже администраторские права, на Виста и выше запись в эту папку запрещена, даже администратору, без подтверждения вручную. |
Сообщ.
#14
,
|
|
|
Извините за оффтоп.
Anatoly Podgoretsky а если нету диска д тогда чего прикажите делать? Создавать для каждой программы свою папку в корне диска С как то не логично, а в програм файлс нельзя. Знач надо создать свою так сказать програм файлс и туда инсталить. Но вот как ентое дело обяснить конечному юзверю. Или может хлопци из микрософта чего новое придумали? |
Сообщ.
#15
,
|
|
|
Vaha, вообще есть каталоги учетных записей пользователей, в которые запись разрешена.
По мне, так лучшее решение настраиваемые пути: по умолчанию указывают на каталог учетной записи пользователя, в инсталляторе возможность указать пути по выбору, а также упоминание о том, что если это будет отложено, то где в программе искать эту настройку. |