Перейти к содержанию
Fire Monkey от А до Я
  • 0

MSacc проблема с подключением


Mari_rohan

Вопрос

Как только подключаюсь через визуальное меню все норм как только в обход все ломается вот функция:

function TForm2.bdconected(s2: string; s1, s: TObject): string;
begin
if (s is TFDConnection) and (s1 is TFDQuery)  then
begin
TFDConnection(s).Params.Values['DriverID']:='MSAcc';
TFDConnection(s).Params.Values['Database']:=s2;
TFDConnection(s).LoginPrompt:=false;
TFDQuery(s1).SQL.add('select*From User_Grid');
TFDQuery(s1).Connection.Connected:=true;
TFDQuery(s1).Active:=true;
end;
 {if (TFDConnection(s).Connected=true) and (TFDQuery(s1).Active=true)  then
 Result:='successfully'; }

end;

 

вот вызов

procedure TForm1.CornerButton1Click(Sender: TObject);
var
path:String;
begin
path:='I:\bd\UserBD.mdb';
Form2.bdconected(path,Form2.FDQuery1,Form2.FDConnection1);
end;

 

вот что то что получается:

 

b773b4d6a8ea43065764acbb261fcfc534ba8865.png

Изменено пользователем Mari_rohan
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

не много поменяла код:

unit Core;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf,
  FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async,
  FireDAC.Phys, FireDAC.FMXUI.Wait, FireDAC.Stan.Param, FireDAC.DatS,
  FireDAC.DApt.Intf, FireDAC.DApt, Data.DB, FireDAC.Comp.DataSet,
  FireDAC.Comp.Client, FireDAC.Phys.MSAcc, FireDAC.Phys.MSAccDef;

type
  TForm2 = class(TForm)
    FDQuery1: TFDQuery;
    FDConnection1: TFDConnection;
    FDManager1: TFDManager;
  private
    { Private declarations }
  public
  function bdconected(s2:string;s1,s{,sd}: TObject): string; { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.fmx}

function TForm2.bdconected(s2: string; s1, s{,sd}: TObject): string;
begin
if s is TFDConnection  then
begin
TFDConnection(s).Params.DriverID:='MSAcc';
TFDConnection(s).Params.Database:=s2;
TFDConnection(s).Params.Encoding:='UTF8';
TFDConnection(s).LoginPrompt:=false;

end;
if  s1 is TFDQuery then
begin
TFDQuery(s1).SQL.Clear;
TFDQuery(s1).SQL.add('select*From User_Grid');
TFDQuery(s1).Connection.Connected:=true;
TFDQuery(s1).Active:=true;
end;
{if s is TFDManager  then
begin
 { TFDManager(sd).DriverDefFileName:='Some path to FDDrivers.ini';
TFDManager(sd).DriverDefFileAutoLoad:=true;
TFDManager(sd).GetCatalogNames(ExtractFilePath(ParamStr(0)) +'FDDrivers1.ini');

end;
 {if (TFDConnection(s).Connected=true) and (TFDQuery(s1).Active=true)  then
 Result:='successfully'; }

end;

end.

 

Ссылка на комментарий
  • 0

зачем у вас тут нетипизированные параметры? сделайте два разных метода и не будет такой каши.

function bdconected(s2:string;s1,s{,sd}: TObject): string;
Изменено пользователем slav_z
+
Ссылка на комментарий
  • 0
28 минут назад, Mari_rohan сказал:

firedac как задать свойство ODBCAdvanced не через визуальный редактор?

FDConnection1.Params.AddPair('ODBCAdvanced','123456');

я сам не пробовал... но вдруг получится..
 

Ссылка на комментарий
  • 0

 

FDConnection1.Params.AddPair('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');

подскажи пожалуйста как так должна выглядеть запись?

Изменено пользователем Mari_rohan
Ссылка на комментарий
  • 0

для начала попробуйте настроить подключение через мастер подключения в designtime...  когда получится...  откройте форму как текст (fmx) и посмотрите что там и как указано для подключения...  повторите то же самое в runtime...

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...