Erro : E2010 Incompatible types: TSQLConnection and TFDConnection
Pessoal, Bom dia.
Alguém sabe como resolver este erro ?
Antes eu utilizava o TSQLConnection e agora quero utilizar o Firedac.
Segue abaixo o meu codigo
unit Principal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, SqlExpr;
type
TForm1 = class(TForm)
btnAcesso: TButton;
Image1: TImage;
lblStatus: TLabel;
procedure btnAcessoClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnatualizaClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Cad, DMMoni;
{$R *.dfm}
procedure TForm1.btnAcessoClick(Sender: TObject);
begin
try
Form2 := TForm2.Create(self);
Form2.ShowModal;
finally
FreeAndNil(Form2);
end;
end;
procedure TForm1.btnatualizaClick(Sender: TObject);
var
qry: TSQLQuery;
begin
btnAcesso.Visible := false;
lblStatus.Font.Color := clGreen;
lblStatus.Caption := ''Iniciando varredura de rotas diárias ...'';
Self.Refresh;
try
try
qry := TSQLQuery.Create(nil);
qry.SQLConnection := dm.SQLConnection1;
dm.cdsMonitoramento.Close;
dm.cdsRota.Close;
dm.qryRota.Close;
dm.qryRota.SQL.Clear;
dm.qryRota.SQL.Add(''SELECT r.ID, r.ROTA, r.CLIENTE, r.ORIGEM, r.DESTINO, r.HORA_INICIO,r.HORA_REAL, r.HORA_FIM,r.HORA_REAL_FIM,r.COD_ATRASO,r.OBS, r.STATUS,r.CAMINHAO,r.PLACA,r.MOTORISTA FROM rota r '');
dm.qryRota.SQL.Add(''WHERE STATUS = :status AND ID NOT IN (SELECT ID_ROTA FROM monitoramento WHERE DATA =:data)'');
dm.qryRota.ParamByName(''status'').AsString := ''ATIVO'';
dm.qryRota.ParamByName(''data'').AsString := FormatDateTime(''dd/mm/yyyy'', Now);
dm.qryRota.Open;
dm.cdsRota.Open;
if not dm.cdsRota.IsEmpty then
begin
lblStatus.Caption := ''Inserindo rotas diárias ...'';
Self.Refresh;
dm.cdsRota.First;
while not dm.cdsRota.Eof do
begin
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(''INSERT INTO monitoramento (ROTA, DATA, CLIENTE, ORIGEM, DESTINO, HORA_INI,HORA_REAL, ID_ROTA, HORA_FIM,HORA_REAL_FIM,COD_ATRASO,OBS, STATUS,CAMINHAO,PLACA,MOTORISTA, DATA_FORMATO)VALUES'');
qry.SQL.Add(''(:rota, :data, :cliente, :origem, :destino, :hora_ini,:hora_real, :id_rota, :hora_fim,:hora_real_fim,:cod_atraso,:obs, :status,:caminhao,:placa,:motorista, :data_formato)'');
qry.ParamByName(''rota'').AsString := dm.cdsRota.FieldByName(''ROTA'').AsString;
qry.ParamByName(''data'').AsString := FormatDateTime(''dd/mm/yyyy'', Now);
qry.ParamByName(''cliente'').AsString := dm.cdsRota.FieldByName(''CLIENTE'').AsString;
qry.ParamByName(''origem'').AsString := dm.cdsRota.FieldByName(''ORIGEM'').AsString;
qry.ParamByName(''destino'').AsString := dm.cdsRota.FieldByName(''DESTINO'').AsString;
qry.ParamByName(''hora_ini'').AsString := dm.cdsRota.FieldByName(''HORA_INICIO'').AsString;
qry.ParamByName(''hora_real'').AsString := dm.cdsRota.FieldByName(''HORA_REAL'').AsString;
qry.ParamByName(''id_rota'').AsInteger := dm.cdsRota.FieldByName(''ID'').AsInteger;
qry.ParamByName(''hora_fim'').AsString := dm.cdsRota.FieldByName(''HORA_FIM'').AsString;
qry.ParamByName(''hora_real_fim'').AsString := dm.cdsRota.FieldByName(''HORA_REAL_FIM'').AsString;
qry.ParamByName(''cod_atraso'').AsString := dm.cdsRota.FieldByName(''COD_ATRASO'').AsString;
qry.ParamByName(''obs'').AsString := dm.cdsRota.FieldByName(''OBS'').AsString;
qry.ParamByName(''caminhao'').AsString := dm.cdsRota.FieldByName(''CAMINHAO'').AsString;
qry.ParamByName(''placa'').AsString := dm.cdsRota.FieldByName(''PLACA'').AsString;
qry.ParamByName(''motorista'').AsString := dm.cdsRota.FieldByName(''MOTORISTA'').AsString;
qry.ParamByName(''data_formato'').AsDate := Date;
qry.ParamByName(''status'').AsString := ''EM ANDAMENTO'';
qry.ExecSQL();
dm.cdsRota.Next;
end;
lblStatus.Caption := ''Finalizado ...'';
Self.Refresh;
end
else
begin
lblStatus.Font.Color := clRed;
lblStatus.Caption := ''Não existem rotas diárias para serem inseridas!'';
Self.Refresh;
end;
dm.cdsMonitoramento.Open;
btnAcesso.Visible := true;
except
on E:Exception do
MessageDlg(''Erro ao executar varredura: '' + E.Message, mtError, mbOKCancel, 0);
end;
finally
FreeAndNil(qry);
end;
end;
procedure TForm1.FormShow(Sender: TObject);
var
qry: TSQLQuery;
begin
btnAcesso.Visible := false;
lblStatus.Font.Color := clGreen;
lblStatus.Caption := ''Iniciando varredura de rotas diárias ...'';
Self.Refresh;
try
try
qry := TSQLQuery.Create(nil);
qry.SQLConnection := dm.SQLConnection1;
dm.cdsMonitoramento.Close;
dm.cdsRota.Close;
dm.qryRota.Close;
dm.qryRota.SQL.Clear;
dm.qryRota.SQL.Add(''SELECT r.ID, r.ROTA, r.CLIENTE, r.ORIGEM, r.DESTINO, r.HORA_INICIO,r.HORA_REAL, r.HORA_FIM,r.HORA_REAL_FIM,r.COD_ATRASO,r.OBS, r.STATUS,r.CAMINHAO,r.PLACA,r.MOTORISTA FROM rota r '');
dm.qryRota.SQL.Add(''WHERE STATUS = :status AND ID NOT IN (SELECT ID_ROTA FROM monitoramento WHERE DATA =:data)'');
dm.qryRota.ParamByName(''status'').AsString := ''ATIVO'';
dm.qryRota.ParamByName(''data'').AsString := FormatDateTime(''dd/mm/yyyy'', Now);
dm.qryRota.Open;
dm.cdsRota.Open;
if not dm.cdsRota.IsEmpty then
begin
lblStatus.Caption := ''Inserindo rotas diárias ...'';
Self.Refresh;
dm.cdsRota.First;
while not dm.cdsRota.Eof do
begin
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(''INSERT INTO monitoramento (ROTA, DATA, CLIENTE, ORIGEM, DESTINO, HORA_INI,HORA_REAL, ID_ROTA, HORA_FIM,HORA_REAL_FIM,COD_ATRASO,OBS, STATUS,CAMINHAO,PLACA,MOTORISTA, DATA_FORMATO)VALUES'');
qry.SQL.Add(''(:rota, :data, :cliente, :origem, :destino, :hora_ini,:hora_real, :id_rota, :hora_fim,:hora_real_fim,:cod_atraso,:obs, :status,:caminhao,:placa,:motorista, :data_formato)'');
qry.ParamByName(''rota'').AsString := dm.cdsRota.FieldByName(''ROTA'').AsString;
qry.ParamByName(''data'').AsString := FormatDateTime(''dd/mm/yyyy'', Now);
qry.ParamByName(''cliente'').AsString := dm.cdsRota.FieldByName(''CLIENTE'').AsString;
qry.ParamByName(''origem'').AsString := dm.cdsRota.FieldByName(''ORIGEM'').AsString;
qry.ParamByName(''destino'').AsString := dm.cdsRota.FieldByName(''DESTINO'').AsString;
qry.ParamByName(''hora_ini'').AsString := dm.cdsRota.FieldByName(''HORA_INICIO'').AsString;
qry.ParamByName(''hora_real'').AsString := dm.cdsRota.FieldByName(''HORA_REAL'').AsString;
qry.ParamByName(''id_rota'').AsInteger := dm.cdsRota.FieldByName(''ID'').AsInteger;
qry.ParamByName(''hora_fim'').AsString := dm.cdsRota.FieldByName(''HORA_FIM'').AsString;
qry.ParamByName(''hora_real_fim'').AsString := dm.cdsRota.FieldByName(''HORA_REAL_FIM'').AsString;
qry.ParamByName(''cod_atraso'').AsString := dm.cdsRota.FieldByName(''COD_ATRASO'').AsString;
qry.ParamByName(''obs'').AsString := dm.cdsRota.FieldByName(''OBS'').AsStrin
Alguém sabe como resolver este erro ?
Antes eu utilizava o TSQLConnection e agora quero utilizar o Firedac.
Segue abaixo o meu codigo
unit Principal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, SqlExpr;
type
TForm1 = class(TForm)
btnAcesso: TButton;
Image1: TImage;
lblStatus: TLabel;
procedure btnAcessoClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnatualizaClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Cad, DMMoni;
{$R *.dfm}
procedure TForm1.btnAcessoClick(Sender: TObject);
begin
try
Form2 := TForm2.Create(self);
Form2.ShowModal;
finally
FreeAndNil(Form2);
end;
end;
procedure TForm1.btnatualizaClick(Sender: TObject);
var
qry: TSQLQuery;
begin
btnAcesso.Visible := false;
lblStatus.Font.Color := clGreen;
lblStatus.Caption := ''Iniciando varredura de rotas diárias ...'';
Self.Refresh;
try
try
qry := TSQLQuery.Create(nil);
qry.SQLConnection := dm.SQLConnection1;
dm.cdsMonitoramento.Close;
dm.cdsRota.Close;
dm.qryRota.Close;
dm.qryRota.SQL.Clear;
dm.qryRota.SQL.Add(''SELECT r.ID, r.ROTA, r.CLIENTE, r.ORIGEM, r.DESTINO, r.HORA_INICIO,r.HORA_REAL, r.HORA_FIM,r.HORA_REAL_FIM,r.COD_ATRASO,r.OBS, r.STATUS,r.CAMINHAO,r.PLACA,r.MOTORISTA FROM rota r '');
dm.qryRota.SQL.Add(''WHERE STATUS = :status AND ID NOT IN (SELECT ID_ROTA FROM monitoramento WHERE DATA =:data)'');
dm.qryRota.ParamByName(''status'').AsString := ''ATIVO'';
dm.qryRota.ParamByName(''data'').AsString := FormatDateTime(''dd/mm/yyyy'', Now);
dm.qryRota.Open;
dm.cdsRota.Open;
if not dm.cdsRota.IsEmpty then
begin
lblStatus.Caption := ''Inserindo rotas diárias ...'';
Self.Refresh;
dm.cdsRota.First;
while not dm.cdsRota.Eof do
begin
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(''INSERT INTO monitoramento (ROTA, DATA, CLIENTE, ORIGEM, DESTINO, HORA_INI,HORA_REAL, ID_ROTA, HORA_FIM,HORA_REAL_FIM,COD_ATRASO,OBS, STATUS,CAMINHAO,PLACA,MOTORISTA, DATA_FORMATO)VALUES'');
qry.SQL.Add(''(:rota, :data, :cliente, :origem, :destino, :hora_ini,:hora_real, :id_rota, :hora_fim,:hora_real_fim,:cod_atraso,:obs, :status,:caminhao,:placa,:motorista, :data_formato)'');
qry.ParamByName(''rota'').AsString := dm.cdsRota.FieldByName(''ROTA'').AsString;
qry.ParamByName(''data'').AsString := FormatDateTime(''dd/mm/yyyy'', Now);
qry.ParamByName(''cliente'').AsString := dm.cdsRota.FieldByName(''CLIENTE'').AsString;
qry.ParamByName(''origem'').AsString := dm.cdsRota.FieldByName(''ORIGEM'').AsString;
qry.ParamByName(''destino'').AsString := dm.cdsRota.FieldByName(''DESTINO'').AsString;
qry.ParamByName(''hora_ini'').AsString := dm.cdsRota.FieldByName(''HORA_INICIO'').AsString;
qry.ParamByName(''hora_real'').AsString := dm.cdsRota.FieldByName(''HORA_REAL'').AsString;
qry.ParamByName(''id_rota'').AsInteger := dm.cdsRota.FieldByName(''ID'').AsInteger;
qry.ParamByName(''hora_fim'').AsString := dm.cdsRota.FieldByName(''HORA_FIM'').AsString;
qry.ParamByName(''hora_real_fim'').AsString := dm.cdsRota.FieldByName(''HORA_REAL_FIM'').AsString;
qry.ParamByName(''cod_atraso'').AsString := dm.cdsRota.FieldByName(''COD_ATRASO'').AsString;
qry.ParamByName(''obs'').AsString := dm.cdsRota.FieldByName(''OBS'').AsString;
qry.ParamByName(''caminhao'').AsString := dm.cdsRota.FieldByName(''CAMINHAO'').AsString;
qry.ParamByName(''placa'').AsString := dm.cdsRota.FieldByName(''PLACA'').AsString;
qry.ParamByName(''motorista'').AsString := dm.cdsRota.FieldByName(''MOTORISTA'').AsString;
qry.ParamByName(''data_formato'').AsDate := Date;
qry.ParamByName(''status'').AsString := ''EM ANDAMENTO'';
qry.ExecSQL();
dm.cdsRota.Next;
end;
lblStatus.Caption := ''Finalizado ...'';
Self.Refresh;
end
else
begin
lblStatus.Font.Color := clRed;
lblStatus.Caption := ''Não existem rotas diárias para serem inseridas!'';
Self.Refresh;
end;
dm.cdsMonitoramento.Open;
btnAcesso.Visible := true;
except
on E:Exception do
MessageDlg(''Erro ao executar varredura: '' + E.Message, mtError, mbOKCancel, 0);
end;
finally
FreeAndNil(qry);
end;
end;
procedure TForm1.FormShow(Sender: TObject);
var
qry: TSQLQuery;
begin
btnAcesso.Visible := false;
lblStatus.Font.Color := clGreen;
lblStatus.Caption := ''Iniciando varredura de rotas diárias ...'';
Self.Refresh;
try
try
qry := TSQLQuery.Create(nil);
qry.SQLConnection := dm.SQLConnection1;
dm.cdsMonitoramento.Close;
dm.cdsRota.Close;
dm.qryRota.Close;
dm.qryRota.SQL.Clear;
dm.qryRota.SQL.Add(''SELECT r.ID, r.ROTA, r.CLIENTE, r.ORIGEM, r.DESTINO, r.HORA_INICIO,r.HORA_REAL, r.HORA_FIM,r.HORA_REAL_FIM,r.COD_ATRASO,r.OBS, r.STATUS,r.CAMINHAO,r.PLACA,r.MOTORISTA FROM rota r '');
dm.qryRota.SQL.Add(''WHERE STATUS = :status AND ID NOT IN (SELECT ID_ROTA FROM monitoramento WHERE DATA =:data)'');
dm.qryRota.ParamByName(''status'').AsString := ''ATIVO'';
dm.qryRota.ParamByName(''data'').AsString := FormatDateTime(''dd/mm/yyyy'', Now);
dm.qryRota.Open;
dm.cdsRota.Open;
if not dm.cdsRota.IsEmpty then
begin
lblStatus.Caption := ''Inserindo rotas diárias ...'';
Self.Refresh;
dm.cdsRota.First;
while not dm.cdsRota.Eof do
begin
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(''INSERT INTO monitoramento (ROTA, DATA, CLIENTE, ORIGEM, DESTINO, HORA_INI,HORA_REAL, ID_ROTA, HORA_FIM,HORA_REAL_FIM,COD_ATRASO,OBS, STATUS,CAMINHAO,PLACA,MOTORISTA, DATA_FORMATO)VALUES'');
qry.SQL.Add(''(:rota, :data, :cliente, :origem, :destino, :hora_ini,:hora_real, :id_rota, :hora_fim,:hora_real_fim,:cod_atraso,:obs, :status,:caminhao,:placa,:motorista, :data_formato)'');
qry.ParamByName(''rota'').AsString := dm.cdsRota.FieldByName(''ROTA'').AsString;
qry.ParamByName(''data'').AsString := FormatDateTime(''dd/mm/yyyy'', Now);
qry.ParamByName(''cliente'').AsString := dm.cdsRota.FieldByName(''CLIENTE'').AsString;
qry.ParamByName(''origem'').AsString := dm.cdsRota.FieldByName(''ORIGEM'').AsString;
qry.ParamByName(''destino'').AsString := dm.cdsRota.FieldByName(''DESTINO'').AsString;
qry.ParamByName(''hora_ini'').AsString := dm.cdsRota.FieldByName(''HORA_INICIO'').AsString;
qry.ParamByName(''hora_real'').AsString := dm.cdsRota.FieldByName(''HORA_REAL'').AsString;
qry.ParamByName(''id_rota'').AsInteger := dm.cdsRota.FieldByName(''ID'').AsInteger;
qry.ParamByName(''hora_fim'').AsString := dm.cdsRota.FieldByName(''HORA_FIM'').AsString;
qry.ParamByName(''hora_real_fim'').AsString := dm.cdsRota.FieldByName(''HORA_REAL_FIM'').AsString;
qry.ParamByName(''cod_atraso'').AsString := dm.cdsRota.FieldByName(''COD_ATRASO'').AsString;
qry.ParamByName(''obs'').AsString := dm.cdsRota.FieldByName(''OBS'').AsStrin
Watson
Curtidas 0
Respostas
Watson
04/04/2018
OBS : O erro aparece nesta linha qry.SQLConnection := dm.SQLConnection1;
GOSTEI 0
Carlos Natividade
04/04/2018
No FireDAC o nome e os componentes são outros.
Ao invés de SQLConnection, vai ser um ADConnection, no lugar do TSQLQuery será um ADQuery.
De maneira grosseira, podes utilizar um find/replace no código, modificando também o TSQLConnection por um TADConnection e assim por diante...
Ao invés de SQLConnection, vai ser um ADConnection, no lugar do TSQLQuery será um ADQuery.
De maneira grosseira, podes utilizar um find/replace no código, modificando também o TSQLConnection por um TADConnection e assim por diante...
GOSTEI 0