duvida funcao criar clientdataset

08/12/2003

1

estou com um problema na seguinte funcao.
estou retornando um clientdataset, mas eu nao posso matar os objetos provider e sql na funcao, quero matar so na hora que eu matar o clientdataset. passei o aowner do provider e do sql sendo como o objeto dataset , sendo assim a hora que eu matasse o obejto dataset o provider e o sql morreriam automaticamente...

esta dando erro, estou fazendo alguma coisa de errada, alguem pode me explicar o erro, sou iniciante...


function mostraqry(campos:string;tabela:string;condicao:string;ordem:string):tclientdataset;
var
dataset:tclientdataset;
provider:tdatasetprovider;
sql:tsqldataset;
begin
dataset:=tclientdataset.create(application);
provider:=tdatasetprovider.create(dataset);
provider.Name:=´provider1´;
sql:=tsqldataset.create(dataset);
sql.sqlconnection:=form1.SQLConnection1;
dataset.providername:=provider.name;
provider.DataSet:=sql;
provider.Options:=[poAllowCommandText];
dataset.commandtext:=´select ´ + campos + ´ from ´ + tabela;
dataset.open;
result:=dataset;
end;
end;

A chamada da funcao :

procedure TForm1.Button1Click(Sender: TObject);
begin
with mostraqry(´cli_cod, cli_nome´,´cliente´,´codigo is not null´,´´) do
try
edit1.text:=fieldbyname(´cli_cod´).asstring;
edit2.text:=floattostr(recordcount);
append;
fieldbyname(´cli_cod´).asstring:=´11111´;
fieldbyname(´cli_nome´).asstring:=´fer´;
post;
applyupdates(-1);
finally;
free; // a hora que eu do este free, gostaria que matasse os 3 objetos criados na funcao
end;

obrigado.

Fernando


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira