Программирование
баз данных в Delphi - создаем главную форму программы склад
На этом уроке мы создадим главную форму для нашего склада.
Создадим подключение, к базе, используя компонент TADOConnection.
Начнем…
ЗапускаемDelphi,выбираемFile -> New-> VCL Forms
Application - Delphi
и получаем на экране
Теперь сохраним наш проект в нужную нам папку (у меня папка sclad) и назовем файл (модуля pas) как general, а файл проекта storage. Для этого выбираем File->SaveProjectAs…
Далее размещаем на формекомпонент TADOConnectionвкладки dbGo
(старое название ADO).
Перед настройкой подключения к базе, необходимо скопировать
файл базы данных (storage.mdb), созданный на прошлом
уроке в папку с проектом.
Начинаем подключение…
Выделяем
компонент TADOConnection и в свойстве LoginPromt ставим на False.
Это делаем для того, чтобы при подключении к БД пароль у нас не запрашивался,
дальше в свойстве ConnectionString нажимаем на кнопку с «…» и видим:
В окне нажимаем на
кнопку «Build…» и появляется следующее окно:
Выбираем провайдера, а
именно Microsoft Jet 4.0 OLE DB Provaider и нажимаем кнопку «Далее».
В данном окне мы
указываем путь к нашей БД и имя пользователя по умолчанию Admin , жмем кнопку «Ок».Если ваша БД находится в корневом каталоге с
программой, то в данном поле достаточно указать ее имя с расширением, примерно
так storage.mdb. Обратите внимание, если вы укажите полный
путь к базе, то при переносе на другой компьютер путь к БД будет не найден!!!
В свойстве компонента TADOConnection – Mode
выбрать из выпадающего списка cmShareDenyNone, асвойство TADOConnection – ConnectedставимTrue. Все подключение к базе активировано.
Сохраняем наш проект. Скачать исходники для урока можно здесь.
Вот я как раз столкнулся с такой проблемой, если пытаюсь открыть прогармму на другом компьютере, то у меня не видит базу, а если оставляю только имя базу, сразу не находит, может есть какой нибуть другой способ..может спомощью кода, подскажите пожалуйста
По идее такого быть не должно. Delphi по умолчанию ищет данные в каталоге с программой, если конечно вы там в настройка чего нибудь не поменяли. Поэтому выбираете в начале полный путь к базе. Нажимаете проверить подключение и если все ОК удаляете путь к базе, оставив только имя и расширение файла, например storage.mdb, далее снова нажимаете проверить подключение, должно быть все ОК. Можно загружать базу программно, например при создании главной формы просить пользователя выбрать базу:
Код
procedure TForm_general.FormCreate(Sender: TObject); var File1:string; begin ShowMessage('Сейчас необходимо будет выбрать файл базы данных.'); OpenDialog1.Filter := 'Базы данных|*.mdb'; if Not(OpenDialog1.Execute) then begin ShowMessage('База данных не выбрана. Работа будет продолжена с текущей базой.'); exit; end; File1:=OpenDialog1.FileName; try if ADOConnection1.Connected then ADOConnection1.Connected := False; ADOConnection1.ConnectionString := Format('Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=%s;Persist Security Info=False',[File1]); ADOConnection1.Connected:=true; Except ShowMessage('Не обнаружена База Данных!.'); Application.Terminate; end; end;
Или сделать через выпадающее меню Файл->Открыть, но при этом вам придется прописать код для активации всех таблиц, что то типа ADOtable1.Active:=True; это можно сделать сразу после подключения к базе или в самих модулях с формами. Иначе у вас все таблицы окажутся закрытыми, потому что в этих примерах таблицы открываются при создании форм в в свойствах компонентов, путем присвоения Active:=True, а без подключения к базе это свойство установится Active:=False.)))))))
Спасибо большое, код заработал!!)))))) В настройках то я ничего не менял, у меня просто делфи 2011, наверное из-за этого у меня не получается и первый способ))))
Ну значит у вас по умолчанию стоит другой каталог, а не каталог с программой. Кстати получить текущий каталог можно командой Edit1.Text:=GetCurrentDir();, а задать SetCurrentDir('../../../');. Дело в том, что каждый раз заставлять пользователя выбирать базу при загрузке не очень хорошо. Попробуйте в коде, который приведен выше заменить строчку: File1:=OpenDialog1.FileName; на: File1:=ExtractFilePath(Application.ExeName)+'имя базы.mdb'; , а строки выше с OpenDialog за комментировать. Здесь первая команда извлекает путь до вашего приложения, а затем прибавляется имя базы. База должна находится в папке с приложением.))))
Поменял все заработало)))))Так и в правду удобнее)))Спасибо вам за все, у вас очень хороший сайт, а вы настоящий професссионал..не то что я)))))Спасибо правдо очень помогли
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]