было ж уже
Так а в коде что сейчас?
Файл где лежит?
Лежит здесь
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;
дык опять
не поняла db - папка, в которой находиться файл - UserBD.mdb.
сделала с большой та же самая ошибка повторяется.
db
и bd
это разные имена.
изменила функцию вызова
procedure TForm1.CornerButton1Click(Sender: TObject);
var
DatabaseFilePath,AppDirPath:string;
begin
AppDirPath := ExtractFilePath(ParamStr(0));
DatabaseFilePath := AppDirPath + 'BD\UserBD.mdb';
Form2.BDconnected(DatabaseFilePath,Form2.FDQuery1, Form2.FDConnection1);
end;
не чего не поменялось
AppDirPath возвращает "I:\Projects\Embarcadero\Delphi\Server-Client\étoile\Serveur\Win64\Debug\ " ?
а как ODBC настроен для этого драйвера?
вот это мне и нужно понять я нашла вот что :
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 настройка драйвера то как его делать относительным и куда потом вставить
Я об администраторе источников данных 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 и как его там обозвали.
Настройки в FireDAC Connection правильные?
Нашла ещё кое что
Connection definition parameters
================================
Database=I:\Projects\Embarcadero\Delphi\Server-Client\étoile\Serveur\Win64\Debug\BD\UserBD.mdb
DriverID=MSAcc
================================
FireDAC info
================================
Tool = RAD Studio 10.1 Berlin
FireDAC = 15.0.1 (Build 86746)
Platform = Windows 32 bit
Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR
================================
Client info
================================
Loading driver MSAcc ...
Loading odbc32.dll driver manager
Creating ODBC environment handle
Searching for ODBC driver ...
Checking for ODBC driver [Microsoft Access Driver (*.mdb, *.accdb)] ...
Found [Microsoft Access Driver (*.mdb, *.accdb)]
Driver Manager version = 03.81.18362.0000
================================
Session info
================================
Current catalog =
Current schema =
Driver name = ACEODBC.DLL
Driver version = Microsoft Office 2007 Access database engine
Driver conformance = 3
DBMS name = ACCESS
DBMS version = 04.00.0000
В проекте компонент FD Connection настроен правильно? Посмотрите его настройки в FireDAC Connection