Fórum Dúvidas ClientDataSet #229755
04/05/2004
0
Query := TIBQuery.Create(Self); Prov := TDataSetProvider.Create(Self); CliDS := TClientDataSet.Create(Self); DS := TDataSource.Create(Self); Query.Database := IBDatabase1; Query.Transaction := IBTransaction1; Query.SQL.Add(Edit1.Text); Prov.DataSet := Query; Prov.Name := ´Prov´; CliDS.ProviderName := Prov.Name; DS.DataSet := CliDS; DBGrid1.DataSource := DS; CliDS.Active := True;
meu DBGrid mostra tudo como se deve.
Mas se eu uso o código dentro de uma classe criada por mim, TCliente por exemplo:
constructor TCliente.Create; begin Query := TIBQuery.Create(Query); Prov := TDataSetProvider.Create(Prov); CliDS := TClientDataSet.Create(CliDS); DS := TDataSource.Create(DS); Query.Database := IBDatabase1; Query.Transaction := IBTransaction1; Query.SQL.Add(Edit1.Text); Prov.DataSet := Query; Prov.Name := ´Prov´; CliDS.ProviderName := Prov.Name; DS.DataSet := CliDS; end;
e depois no botão crio a classe e tento utilizar suas propriedades:
var Cliente: TCliente; begin Cliente := TCliente.Create; Cliente.Query.SQL.Add(Edit1.Text); DBGrid1.DataSource := Cliente.DS; Cliente.CliDS.Active := True; =====>>>> o problema ocorre nessa linha end;
recebo a mensagem ´Missing Data Provider or data packet´
Alguém sabe o que fazer?
PS: Minha classe deriva de TObject.
Obrigado.
Gabriel Ferrarini
Curtir tópico
+ 0Posts
04/05/2004
Paulo_amorim
Talvez o que eu esteja falando nao tenha nada a ver com o problema, mas no construtor da classe vc declarou um Edit1
constructor TCliente.Create;
begin
//(...)
Query.Transaction := IBTransaction1;
Query.SQL.Add([b:08df051137]Edit1.Text[/b:08df051137])
//(...)
end;
Talvez seja besteira, mas creio que o Edit não esteja dentro do escopo da classe
Até+
Gostei + 0
04/05/2004
Gabriel Ferrarini
Gostei + 0
04/05/2004
Rômulo Barros
tente o seguinte:
ClientDataSet1.SetProvider(DataSetProvider1);
Gostei + 0
04/05/2004
Gabriel Ferrarini
Sem querer ser chato... por que na minha classe eu precisei fazer isso??
Gostei + 0
06/05/2004
Rômulo Barros
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)