duvida funcao criar clientdataset
08/12/2003
0
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
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
Ferdelphi12540
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)