Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/2: Рейтинг темы: голосов - 2, средняя оценка - 5.00
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 523
1

Подключение Базы данных Access через ини файл

02.05.2016, 18:00. Просмотров 469. Ответов 13
Метки нет (Все метки)

Здравствуйте. Я не могу понять как подключить базу данных через ини файл, и чтоб набор данных был показан в DBGrid. Вот что я писал, но ничего из этого не получается
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
procedure TForm2.ADOConnection1BeforeConnect(Sender: TObject);
var path, str:string;
begin
 if ADOConnection1.Connected then
 ADOConnection1.Close;
 With TIniFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini')do
 try
 path:=ReadString('DataBase','Path','');
 if path = ' ' then
 if OpenDialog1.Execute then
 begin
   path:=OpenDialog1.FileName;
   WriteString('DataBase','Path','');
    end;
    str:=' ';
    str:=str+'Provider = Microsoft.Jet.OLEDb.4.0;';
    str:=str+'Password = " ";';
    str:=str+'DataSource='+path+';';
    str:=str+'Persist Security Info = True';
    ADOConnection1.ConnectionString:=str;
    finally
      Free;
end;
end;
 
procedure TForm2.FormCreate(Sender: TObject);
begin
OpenDialog1.Filter:='Файлы Access|*.mdb';
ADOConnection1.Open;
end;
Можете мне более подробный код написать, чтоб подключение произошло и чтоб данные показались на компоненте DBGrid. Буду благодарен Вам.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2016, 18:00
Ответы с готовыми решениями:

Запись данных из Combobox в ини файл
Здравствуйте! Такая задачка, мне нужно выбрать какую нибудь надпись в Combobox, записать в ini файл...

Подключение базы данных Access через Server Explorer
Всем привет, давно я вас уже не мучал вопросами своими... Но вот назрел один.. Причем важный ...

C#, ADO.NET. Как защитить файл базы данных Access от удаления пользователем через проводник?
VS 2010, framework 4. Добавляю в проект ссылку "Microsoft ADO Ext. 2.8 for DDL and Security"....

Подключение базы данных Access
Здравствуйте, я уже месяц бьюсь над подключением базы данных Access к проекту Visual C#. Большая...

Подключение к с++ базы данных Access
Добрый день. Вобще не поникаю как подключить к с++ бд. Читал что подключаешь библиотеки(нашел...

13
qwertehok
2643 / 2343 / 623
Регистрация: 29.08.2013
Сообщений: 15,671
02.05.2016, 18:40 2
Цитата Сообщение от vladis23 Посмотреть сообщение
Вот что я писал, но ничего из этого не получается
что именно не получается?
0
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 523
02.05.2016, 20:50  [ТС] 3
qwertehok, именно вывести данные в дб грид и при нажатии кнопки вызывать диалоговое окно, если можно какой-нибудь хороший пример с полной программой для реализации мягкого подключения
0
qwertehok
2643 / 2343 / 623
Регистрация: 29.08.2013
Сообщений: 15,671
02.05.2016, 21:15 4
Цитата Сообщение от vladis23 Посмотреть сообщение
если можно какой-нибудь хороший пример с полной программой для реализации мягкого подключения
ваш код почему не подходит?
0
02.05.2016, 21:15
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 523
02.05.2016, 23:29  [ТС] 5
qwertehok, Мне более не понятно становится, смотрю везде нету никаких комментариев, даже в книгах более не понятное
0
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 523
02.05.2016, 23:35  [ТС] 6
Вот на примере можете подключить эту базу через ини файл с Opendialog, c выводом данным в компонент DBGrid
0
Вложения
Тип файла: rar База данных сотрудники.rar (10.8 Кб, 14 просмотров)
qwertehok
2643 / 2343 / 623
Регистрация: 29.08.2013
Сообщений: 15,671
03.05.2016, 11:26 7
Цитата Сообщение от vladis23 Посмотреть сообщение
Мне более не понятно становится, смотрю везде нету никаких комментариев, даже в книгах более не понятное
вы вообще по русски пишите?

Цитата Сообщение от vladis23 Посмотреть сообщение
Вот на примере можете подключить эту базу через ини файл с Opendialog, c выводом данным в компонент DBGrid
могу, но не буду время тратить (на комментарии и пояснение вам каждой строки)

в увас в первом сообщении есть код. чем он вас не устраивает?
0
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 523
03.05.2016, 12:12  [ТС] 8
qwertehok, выдает ошибки при успешной компиляции

Добавлено через 20 секунд
qwertehok, Можно без комментариев

Добавлено через 15 минут
qwertehok, Проблема в том что мне надо выбирать базу данных через Opendialog, вот из за этого не получается
0
qwertehok
2643 / 2343 / 623
Регистрация: 29.08.2013
Сообщений: 15,671
03.05.2016, 12:44 9
Цитата Сообщение от vladis23 Посмотреть сообщение
выдает ошибки при успешной компиляции
какие?

Цитата Сообщение от vladis23 Посмотреть сообщение
Проблема в том что мне надо выбирать базу данных через Opendialog
вам сложно открыть справку по OpenDialog?

if OpenDialog.Execute then ... // если файл выбран он будет в OpenDialog.Filename
далее вы этот файл читаете как ini
0
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 523
03.05.2016, 13:40  [ТС] 10
qwertehok, Я ни разу не работал с мягким подключением только с жестким
0
qwertehok
2643 / 2343 / 623
Регистрация: 29.08.2013
Сообщений: 15,671
03.05.2016, 14:58 11
Цитата Сообщение от vladis23 Посмотреть сообщение
Я ни разу не работал с мягким подключением только с жестким
)) расскажите же что такое "жесткое подключение"?

Не по теме:

что то типа
эй ты, база есть? а если найду?

0
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 523
03.05.2016, 16:24  [ТС] 12
qwertehok, Это когда привязываешься к одному пути которому нельзя изменить, если например путь изменился тогда будет ошибка что база данных не найдена

Добавлено через 9 минут
qwertehok, Вот я что-то смог сделать но не отображается набор данных и каждый раз когда запускаю выходит ошибка подключения, который в коде прописал
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
unit ConnectFormUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons,IniFiles;
 
type
  TForm3 = class(TForm)
    OpenDialog1: TOpenDialog;
    BitBtn1: TBitBtn;
    Edit1: TEdit;
    Label1: TLabel;
    BitBtn2: TBitBtn;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    ChangeStatus:Boolean;
  end;
 
var
  Form3: TForm3;
  Fini:TIniFile;
 
 
implementation
 
uses
  DataModuleUnit, MainFormUnit;
 
{$R *.dfm}
procedure UpdateSetIni();
begin
Fini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini');
FIni.WriteString('PathBase','Path',Form3.Edit1.Text);
FIni.Free;
 
Fini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini');
Form2.PathBase:=Fini.ReadString('PathBase','Path','');
Fini.Free;
ShowMessage('Изменен!');
 
end;
 
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
UpdateSetIni;
Close;
end;
 
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
case ChangeStatus of
True: begin
if MessageDlg('Путь к файлу БД был изменен, но не сохранен. Сохранить?',mtConfirmation,[mbYes,mbNo],0)= mryes then
    begin
    UpdateSetIni;
    end;
 
 end;
 
 
 
end;
end;
 
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Edit1.Text:=OpenDialog1.FileName;
ChangeStatus:=True;
ShowMessage('Путь к файлу БД изменен');
end
else
ShowMessage('Без изменений');
 
end;
 
end.
 
unit MainFormUnit;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls,IniFiles, StdCtrls, Buttons, Grids, DBGrids, DB, ADODB,
  Menus;
 
type
  TForm2 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid1: TDBGrid;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure N1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    PathBase:string;
  end;
 
var
  Form2: TForm2;
  FIni:TIniFile;
implementation
 
uses
  DataModuleUnit, ConnectFormUnit;
 
{$R *.dfm}
 
procedure TForm2.FormCreate(Sender: TObject);
begin
Fini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini');
PathBase:=FIni.ReadString('PathBase','Path','');
FIni.Free;
//ÏðîâåðêГ* ïîäêëþ÷åГ*ГЁГї ГЄ ГЎГ*çå Г¤Г*Г*Г*ûõ ГЁ îáðГ*áîòêГ* îøèáîê
try
 DataModule1.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;DataSource='+PathBase+';Persist Security Info=False';
 DataModule1.ADOConnection1.Connected:=True;
 except
   MessageBox(Handle,'Возможные причины: '+#13#10+'- отсутствие сети'+#13#10+'- файл БД не найден на сервере'+#13#10+'Обратитесь к Администратору','Ошибка подключения БД',(MB_OK+MB_ICONERROR));
      end;
 
 
 end;
 
procedure TForm2.N1Click(Sender: TObject);
begin
Form3.Edit1.Text:=PathBase;
Form3.ChangeStatus:=False;
Form3.ShowModal;
end;
 
end.
 
//Пункт управления
unit DataModuleUnit;
 
interface
 
uses
  SysUtils, Classes, DB, ADODB;
 
type
  TDataModule1 = class(TDataModule)
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    ADOConnection1: TADOConnection;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  DataModule1: TDataModule1;
 
implementation
 
{$R *.dfm}
 
end.
0
qwertehok
2643 / 2343 / 623
Регистрация: 29.08.2013
Сообщений: 15,671
03.05.2016, 16:41 13
а вы проверить не можете что читаете? и что сохраняете?
есть же отладчик
0
vladis23
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 523
03.05.2016, 16:47  [ТС] 14
qwertehok, Можете хоть подсказать или написать код, я не могу справиться с этой задачей
0
03.05.2016, 16:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2016, 16:47

Подключение Базы Данных Access
Суть вопроса такова. Есть на локальной машине База Данных в Access с таблицами Студент и...

Подключение базы данных Access к программе
Доброго времени суток! Ситуация такая: дали в университете задачу, сделать программу для анализа,...

Подключение базы данных Access к приложению
Здравствуйте,есть небольшая проблема.Я хочу написать курсовик на C++ с использованием базы данных.Я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru