Перейти к содержанию
  • 0
Mari_rohan

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

Вопросы

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

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

Не много не поняла ответ

s2 тип - string 
s1 и s тип - TObject

где не типизированные параметры?

Отредактировал Mari_rohan

Поделиться сообщением


Ссылка на сообщение
  • 0

если бы были типизированные, то не пришлось бы делать это:

if s is TFDConnection  then
begin
TFDConnection(s).Params.DriverID:=

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Отредактировал Mari_rohan

Поделиться сообщением


Ссылка на сообщение
  • 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

очень может быть что и так... жмите F9... ошибка? не беда... что за ошибка?

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

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

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

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


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

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

×
×
  • Создать...