Так если правильно понял, цель отвязать приложение от среды разработки. А в коде вижу все до наоборот. Привязка к полному конкретному адресу.
Делайте относительный адрес. Например папка date содержит базу. Так и укажите относительно: date\base.mdb. Для отладочной версии папка date помещается в debug, финальная в release.
Лежит здесь
I:\Projects\Embarcadero\Delphi\Server-Client\étoile\Serveur\Win64\Debug\BD\UserBD.mdb
функция
function TForm2.BDconnected(S3: string; S2, S1: Tobject): string;
begin
if s1 is TFDConnection then
begin
TFDConnection(s1).Params.DriverID:='MSAcc';
TFDConnection(s1).Params.Database:=S3;
//TFDConnection(s1).Params.AddPair('ODBCAdvanced','DefaultDir='+s3+'DriverId=25;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes');
TFDConnection(s1).Connected := True;
end;
if s1 is TFDQuery then
begin
TFDQuery(s2).SQL.Text:='Select*From User_Grid';
TFDQuery(s2).Active:=true;
end;
end;
end.
вызов функции
procedure TForm1.CornerButton1Click(Sender: TObject);
var
path:string;
DatabaseFilePath,AppDirPath:string;
begin
AppDirPath := ExtractFilePath(ParamStr(0));
DatabaseFilePath := AppDirPath + 'db\UserBD.mdb';
Form2.BDconnected(DatabaseFilePath,Form2.FDQuery1, Form2.FDConnection1);
end;
вот это мне и нужно понять я нашла вот что : ODBCAdvanced’,‘DefaultDir=I:\Projects\Embarcadero\Delphi\Server-Client\étoile\Serveur\Win64\Debug\BD;DriverId=25;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes’);
но он настроен на абсолютный путь соответственно вопрос если это и есть настройка ODBC настройка драйвера то как его делать относительным и куда потом вставить
попробовала так: Form2.FDConnection1.DataSets.DataSource.DataSet.State:='ODBCAdvanced’,‘DefaultDir='+DatabaseFilePath+'DriverId=25;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes’)';
не вышло
Так может Аватар правильно спросил, драйвер в Источники данных ODBC?
Посмотрите в системе, для виндовс можно в пункт Выполнить ввести: odbcad32.exe и жмакнуть Enter. И посмотреть есть ли драйвер Access и как его там обозвали.