На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
Страницы: (4) [1] 2 3 ... Последняя » все  ( Перейти к последнему сообщению )  
> Перенос БД на другой компьютер
    Добрый день. Прошу помощи при работе с БД.
    1. Подключил к проекту БД таким образом: Меню Database->Explorer. Меню Object->ODBC Administrator. Добавить .mdb, указываю путь к БД Access, потом OK, OK.
    При запуске проекта появляется сообщение Database login, которое требует Имя и пароль. Ничего не ввожу, нажимаю ОК, дальше всё нормально.
    Что это за окно и как от него избавиться при запуске программы?

    2. Проект работает с БД только тогда, когда она лежит на C:\MyDataBase.db; Куда не засуну в другое место - выходит сообщение об ошибке. В чём проблема? И как от неё избавится?

    3. При переносе БД на другой компьютер - БД вообще не работает.
      Цитата Expected } @
      Меню Database->Explorer. Меню Object->ODBC Administrator. Добавить .mdb, указываю путь к БД Access, потом OK, OK
      Как-то очень сложно.

      Цитата Expected } @
      Что это за окно и как от него избавиться при запуске программы?

      Указать LoginPrompt = False

      Цитата Expected } @
      Куда не засуну в другое место - выходит сообщение об ошибке
      Совершенно верно. Программе надо указать где файл лежит. Сама она искать файлы не умеет. Обращается по пути и имени из п.1. В Вашем случае, наверное, надо смотреть куда настроено ODBC. Но повторю, Вы выбрали слишком витееватый способ.

      Цитата Expected } @
      И как от неё избавится?
      Или каждый раз менять руками настройки перед запуском илли использовать другой способ подключения. Например OLEDB и MicrosoftJet.

      Цитата Expected } @
      При переносе БД на другой компьютер - БД вообще не работает.
      Это естественно вытекает из предыдущего пункта.
        Цитата
        Как-то очень сложно.

        А как по другому подключить БД? Что бы не было всей этих проблем?

        Цитата
        LoginPrompt = False

        Это в обработчике событий како-го то компонента?
        Сообщение отредактировано: Expected } -
          Акцесс не надо подключать через ODBC лучший вариант через родного для него провайдера, через JET и тогда проблем не будет, очень легко изменить строку подключения на нужную.
            Подключил через JET проблем меньше стало. Но на другом компьютере всё равно нужно указывать путь. Как сделать так, что бы ADOconnection1 сам подключал БД, которая находится по адресу "Database\MyDatabase.db"? А сама папка Database находится в той же папке что и ехе-шник
              Цитата Expected } @
              Как сделать так, что бы ADOconnection1 сам подключал БД, которая находится по адресу
              Формировать стоку подключения до коннекта к БД
              Почитать про Aplication.ExeName, и ExtractFileDir
                в событии OnCreate твоего DataModule добавь примерно так
                создать ConnectionString где адрес файла бд будет указан вот так
                ExpandedWrap disabled
                  dbfile := ExtractFileDir(Application.ExeName) + 'Database\MyDatabase.db';

                и вообще при использовании файлов в своей программе путь к ним нужно задавать таким вот способом.
                  Expected } как вариант - создай ini-файл с параметрами подлючения. К примеру:
                  ExpandedWrap disabled
                    [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
                  Сообщение отредактировано: shadow_tls -
                    Цитата VahaC @
                    в событии OnCreate

                    В OnCreate не сработало, а вот в собтытии BeforeConnection ADOConnection1 получилось
                      Цитата Expected } @
                      В OnCreate не сработало, а вот в собтытии BeforeConnection ADOConnection1 получилось

                      Это потому что у тебя в design time ADOConnection1.Connected установлено в тру
                        Цитата Expected } @
                        Подключил через JET проблем меньше стало. Но на другом компьютере всё равно нужно указывать путь. Как сделать так, что бы ADOconnection1 сам подключал БД, которая находится по адресу "Database\MyDatabase.db"? А сама папка Database находится в той же папке что и ехе-шник

                        Подобным программам не место в Виндоус, они не живые, не надо пытаться писать в Program Files
                        Что мешает это делать в d:\Databases с должными правами.
                          Цитата Anatoly Podgoretsky @
                          они не живые

                          А можно обяснить что это значить?
                            Попадешься на машину с норамальными правами, а не администраторскпми для всех и сразу поймешь, что это значит.
                            Сообственно не надо даже администраторские права, на Виста и выше запись в эту папку запрещена, даже администратору, без подтверждения вручную.
                            Сообщение отредактировано: Anatoly Podgoretsky -
                              Извините за оффтоп.

                              Anatoly Podgoretsky
                              а если нету диска д тогда чего прикажите делать?
                              Создавать для каждой программы свою папку в корне диска С как то не логично, а в програм файлс нельзя.
                              Знач надо создать свою так сказать програм файлс и туда инсталить. Но вот как ентое дело обяснить конечному юзверю.
                              Или может хлопци из микрософта чего новое придумали?
                              Сообщение отредактировано: VahaC -
                                Vaha, вообще есть каталоги учетных записей пользователей, в которые запись разрешена.
                                По мне, так лучшее решение настраиваемые пути: по умолчанию указывают на каталог учетной записи пользователя, в инсталляторе возможность указать пути по выбору, а также упоминание о том, что если это будет отложено, то где в программе искать эту настройку.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0440 ]   [ 16 queries used ]   [ Generated: 21.05.24, 15:58 GMT ]