Consulta SQL / ClientDataSet
Caros Amigos:
Estou fazendo a importação de dados via XML utilizando o componente ClientDataSet, porém
necessito fazer uma função para apresentar o resultado da mesma em uma Grid.
Que componente ou instrução posso utilizar para tal, visto que não existe uma tabela armazenado tais informacões.
Quando utilizava o Interbase minha função era como apresentado logo abaixo, mas agora que trabalho com o ClientDataSet sem um banco (Só memória), não tenho ideia de como resolver tal problema.
Fico agradecido se alguem puder me ajudar
Grato
Zekas
[color=darkred:838cc8cdf9]function TFrmPrincipal.MeAbast(Placa: String): Double;
var
SQL1 : TIBSQL;
nMed1: Integer;
nMed2, nMedias: Double;
begin
SQL1:= TIBSQL.Create(nil);
SQL1.Database:= DMBases.IBDBase;
SQL1.SQL.Add(´select sum(km_rodados), sum(qtde_abastec) from abastec´);
SQL1.SQL.Add(´where cd_placa = :nPlaca´);
SQL1.ParamByName(´nPlaca´).AsString:= Placa;
SQL1.ExecQuery;
nMed1:= SQL1.Fields[0].AsInteger;
nMed2:= SQL1.Fields[1].AsFloat;
if nMed1 > 0 then
begin
nMedias:= (nMed1 / nMed2);
end
else
begin
nMedias := 0;
end;
Result:= nMedias;
end[/color:838cc8cdf9]
Estou fazendo a importação de dados via XML utilizando o componente ClientDataSet, porém
necessito fazer uma função para apresentar o resultado da mesma em uma Grid.
Que componente ou instrução posso utilizar para tal, visto que não existe uma tabela armazenado tais informacões.
Quando utilizava o Interbase minha função era como apresentado logo abaixo, mas agora que trabalho com o ClientDataSet sem um banco (Só memória), não tenho ideia de como resolver tal problema.
Fico agradecido se alguem puder me ajudar
Grato
Zekas
[color=darkred:838cc8cdf9]function TFrmPrincipal.MeAbast(Placa: String): Double;
var
SQL1 : TIBSQL;
nMed1: Integer;
nMed2, nMedias: Double;
begin
SQL1:= TIBSQL.Create(nil);
SQL1.Database:= DMBases.IBDBase;
SQL1.SQL.Add(´select sum(km_rodados), sum(qtde_abastec) from abastec´);
SQL1.SQL.Add(´where cd_placa = :nPlaca´);
SQL1.ParamByName(´nPlaca´).AsString:= Placa;
SQL1.ExecQuery;
nMed1:= SQL1.Fields[0].AsInteger;
nMed2:= SQL1.Fields[1].AsFloat;
if nMed1 > 0 then
begin
nMedias:= (nMed1 / nMed2);
end
else
begin
nMedias := 0;
end;
Result:= nMedias;
end[/color:838cc8cdf9]
Zekas
Curtidas 0
Respostas
Rafs
09/11/2004
Quando você utiliza o ClientDataSet ele cria uma tabela em memória.
Para apresentar os dados, basta você conectá-lo a um DataSource e este a um DBGrid, quando terminar de importar o XML já irá aparecer os dados no DBGrid.
Para apresentar os dados, basta você conectá-lo a um DataSource e este a um DBGrid, quando terminar de importar o XML já irá aparecer os dados no DBGrid.
GOSTEI 0
Zekas
09/11/2004
A apresentação dos dados na Grid esta correta. O problema é que necessito executar comandos SQL´s.
Zekas
Zekas
GOSTEI 0
Vinicius2k
09/11/2004
Colega,
Isso não será possível... vc terá substituir as intruções SQL por métodos, propriedades, eventos e recursos do próprio ClientDataSet, como OnFillterRecord, Filtered, Aggregate Fields, etc...
T+
Isso não será possível... vc terá substituir as intruções SQL por métodos, propriedades, eventos e recursos do próprio ClientDataSet, como OnFillterRecord, Filtered, Aggregate Fields, etc...
T+
GOSTEI 0