FD connect как заменить абсолютный на относительный путь

Я его быстро собрал и всё работает… Может что то “мелочи” упустил. Но надеюсь вы меня этого простите :wink:

1 лайк

Смотрел про Clear на сайте http://docwiki.embarcadero.com/CodeExamples/Rio/en/FireDAC.MSAccess_Sample

with dbMain do begin
  Close;
  // create temporary connection definition
  with Params do begin
    Clear;
    Add('DriverID=MSAcc');
    Add('Database=x:\path_to_db\db.fdb');
  end;
  Open;
end;

в коде dbMain это FDConnection1 и там Clear не нужно. Clear нужно только при FDQuery1 который предназначено для SQL запроса.

1 лайк

Так и зачем он тогда тут?))

Clear нужен если в Params уже есть например Database=, потому что тогда Add добавит еще один Database= в конец, но использоваться будет первый.

Или писать через Values и т.п. как выше.

1 лайк

Да точно… извиняюсь я невнимательно смотрел код. Вот так будет правильно

procedure TForm1.Connect;
begin
  try
    Ini:=TiniFile.Create(extractfilepath(paramstr(0))+'Connect.ini');
    with FDConnection1 do
    begin
      Connected := false;
      Params.Clear;
      Params.Add('DriverID=MSAcc');
      Params.Add('Database=' + Ini.ReadString('Database','MyDatabase', ''));
      Connected := true;
    end;
    FDQuery1.Open();
    ini.Free;
  except
    MessageDlg('Ошибка!!! программа не может подключится к базе данных',  mtError, [mbOK], 0);
    Application.Terminate;
  end;
end;

Acces_FDAC_2.rar (3.9 МБ)

1 лайк

Всем спасибо котятки, помогло. Я оказалась не внимательна к пути к базе. Нужно было еще не сразу активировать, а в форм криет активацию FDConnection и FDQuery делать.

и вам спасибо и всего хорошего :wink: обращайтесь, когда будет вопросы. мы рады что вы с нами и что у вас всё получилось.!