Тема: Помилка при повторному відкритті файлу додатком (Delphi)
У мене ось яка проблема.
Створив додаток з локальної бази даних.
Запускаю додаток, дальше відкриваю базу даних все нормально. Та коли хочу відкрити іншу базу даних вибиває помилка "що операція не дозволяється якщо об'єкт відкрито"
procedure TModulA_DMd.MMOpenB_MItClick(Sender: TObject);
var
I:integer;
begin
for I := 0 to ModulA_DMd.ComponentCount - 1 do//Для початку деактивовую таблиці та видаляю назви таблиць
if ModulA_DMd.Components[i] is TADOTable then
begin
(ModulA_DMd.Components[i] as TADOTable).Active:=False;
(ModulA_DMd.Components[i] as TADOTable).TableName:='';
end;
with ModulA_DMd.ADOConnection1 do//Видаляю старий шлях до бази даних та закриваю її
begin
ConnectionString:='';
Connected:=False;
end;
if ModulA_DMd.OpenDialog1.Execute then//Записую в поле новий щлях до бази даних
begin
Setting_Fr.PartBs_Ed.Text:=ModulA_DMd.OpenDialog1.FileName;
end;
ModulA_DMd.OpenDialog1.FileName:='';//Очищаю шлях в діалозі
with ModulA_DMd.ADOConnection1 do//Встановлюю значення для ADOConnection1
begin
LoginPrompt:=False;
Provider:='Microsoft.Jet.OLEDB.4.0';
Mode:=cmShareDenyNone;
ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
Setting_Fr.PartBs_Ed.Text+';Persist Security Info=False';
Connected:=True;
end;
for I := 0 to ModulA_DMd.ComponentCount - 1 do//Встановлюю значення для фсіх таблиць
if ModulA_DMd.Components[i] is TADOTable then
begin
(ModulA_DMd.Components[i] as TADOTable).CursorType:=ctStatic;
(ModulA_DMd.Components[i] as TADOTable).Connection:=ADOConnection1;
end;
with ModulA_DMd do//Встановлюю назви таблиць
begin
Main_ADOTb.TableName:='AllMain';
//Main_ADOTb.TableName:='Amplya';
AvtorLine_ADOTb.TableName:='AvtorLine';
AvtorRelLine_ADOTb.TableName:='AvtorRelLine';
AvtorUkrLine_ADOTb.TableName:='AvtorUkrLine';
Bitn_ADOTb.TableName:='Bitn';
BitnLine_ADOTb.TableName:='BitnLine';
Category_ADOTb.TableName:='Category';
CategoryLine_ADOTb.TableName:='CategoryLine';
Korporation_ADOTb.TableName:='Korporation';
Lang_ADOTb.TableName:='Lang';
LangLine_ADOTb.TableName:='LangLine';
Mitka_ADOTb.TableName:='Mitka';
NamePrg_ADOTb.TableName:='NamePrg';
OfSite_ADOTb.TableName:='OfSite';
OP_ADOTb.TableName:='OP';
OPLine_ADOTb.TableName:='OPLine';
Person_ADOTb.TableName:='Person';
Poster_ADOTb.TableName:='Poster';
Skrinshot_ADOTb.TableName:='Skrin';
Statys_ADOTb.TableName:='Statys';
Type_ADOTb.TableName:='Type';
Version_ADOTb.TableName:='Version';
WebSite_ADOTb.TableName:='Website';
end;
for I := 0 to ModulA_DMd.ComponentCount - 1 do//Активую всі таблиці
if ModulA_DMd.Components[i] is TADOTable then
begin
(ModulA_DMd.Components[i] as TADOTable).Active:=True;
end;
end;
Хоча закриваю ADOConnection1 та сам файл бази даних залишається відкритим підкажіть будь ласка як ще зробити.
Буду дуже вдячний.