Всё что написано выше это всё для вас … перечитайте. Нужно и применяйте
Можно не писать всё остальное если вы уже указали это на форме и не очищали тут (.Clear
).
И у вас не такое имя папки было.
вот полный путь
- Это НЕ полный путь. смотрите док : http://docwiki.embarcadero.com/CodeExamples/Rio/en/FireDAC.MSAccess_Sample
- Я бы на ваши месте делал так что это путь
Add('DriverID=MSAcc');
Add('Database=x:\path_to_db\db.fdb');
читал программа из .ini файла
не видите разницу между этим и
?
@mari_rohan, а разве совет Алекса отсюда - FD connect как заменить абсолютный на относительный путь
(установить Connection в False и задать параметр Database в коде программы (на FormCreate) )
не помог?
Что именно “это”? В последнем коде автора он полный, просто не тот, что нужен ему )
Так а зачем заставлять людей писать путь если предполагалось, что БД лежит рядом с программой.
Разве что в ини по умолчанию использовать какую-нибудь свою “переменную” типа $APPDIR$/db/db.mdb
, которую потом в строке заменять программно при чтении из файла.
Либр база открыта другим процессом монопольно
Либо недостаточно прав
Да имя папки там не то.
Текст ошибки конечно странный, но вроде бы вполне возможная причина. https://stackoverflow.com/questions/26244425/general-error-unable-to-open-registry-key-temporary-volatile-from-access
This is the top-level error message produced by the Access Database Engine (a.k.a. “ACE”) ODBC driver when the current process is unable to open the Access database file for one of the following reasons:
…
- The database file simply does not exist.
непомог
как сделать чтобы читала из ини файла
Так проблема-то в чем именно сейчас? Я ж сказал уже 3 раза, укажите правильное имя папки.
открываю свойства базы данных там написан путь до базы данных вот он:
что в нем не хватает?
в папке db лежит база.
в папке debug экзешник.
На этом скриншоте нет такого имени папки.
А надпись расположение и дальше строчка?
отож , db<>bd ))
Ну вообщем ошибочка вышла в свойствах правильный путь к базе
Так теперь работает?)
Короче ладно…! Я рады уважение участников этого форума и рады уважение вас буду демонстрировать мои готовы пример… Я тоже был новичок мне тоже помогли много раз… Именно [Аватар] мне много раз помог.! и совесть меня не позволяет не показать всё подробно.!
Что касается [mari rohan] Я не увидел от него огромное желание достичь цель. Ну ладно
Приступим: Вот мои ini файл Connect.ini где написано путь файла и при необходимости можно его изменить
1)
uses
IniFiles,
//------------------
var
Form1: TForm1;
//--- ini
Ini: TIniFile;
{ Private declarations }
procedure Connect;
- тело процедуры
procedure TForm1.Connect;
begin
try
Ini:=TiniFile.Create(extractfilepath(paramstr(0))+'Connect.ini'); //
FDConnection1.Connected := false;
FDConnection1.Params.Add('DriverID=MSAcc');
FDConnection1.Params.Add('Database=' + Ini.ReadString('Database','MyDatabase', ''));
FDConnection1.Connected := true;
FDQuery1.Open();
ini.Free;
except
MessageDlg('Ошибка!!! программа не может подключится к базе данных', mtError, [mbOK], 0);
Application.Terminate;
end;
end;
- вызов процедуры
procedure TForm1.FormShow(Sender: TObject);
begin
Connect();
end;
Надо либо .Clear
перед этим, либо оставить свойство пустым на форме, иначе вроде будет использоваться старое (первое) значение.