Executar query na DLL e retornar os dados p aplicação Delphi

Delphi

25/11/2005

Tenho uma DLL certo, executo uma query dentro da DLL que retorna vários registros, tem como eu alimentar um DBGrid na minha aplicação Delphi com estes dados?
Agradeço se alguém puder ajudar.


Mkoch

Mkoch

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

25/11/2005

eu faço isso usando clientdataset.

como fazer:
o retorno da sua função na ddl precisa ser um variant.
daí, na sua dll você faz: result := clientdatasetdadll.data;

no seu aplicativo você precisa ter um clientdataset instanciado (ou dinâmico, a escolha é sua) que não deve estar ligado a qualquer base de dados.
aí você faz assim:

clientdataset.close;
clientdataset.createdataset;
clientdataset.data := funcaodaddl;
clientdataset.first;

pronto! seus registro já estão no clientdataset. se esse clientdataset estiver ligado à uma grade, os dados serão exibidos.


GOSTEI 0
Mkoch

Mkoch

25/11/2005

Boa, valeu


GOSTEI 0
Mkoch

Mkoch

25/11/2005

O problema e que eu uso o IBX, será que tem algum jeito também?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

25/11/2005

tem jeito de retornar os valores, sim.

- na sua dll, instancie um DatasetProvider (palleta DataAccess) e ligue-o ao seu IBX dataset;
- altere a opção poAllowCommandText da propriedade Options do DatasetProvider para True para o caso de você usar instruções dinâmicas;
- instancie um ClientDataset (palleta DataAccess) na sua dll e ligue sua propriedade ProviderName ao DatasetProvider recém instanciado.

pronto! agora trabalhe com o ClientDataset, mantendo seus componentes IBX.

ClientDataset.Close;
ClientDataset.CommanText := suainstrucao;
[ ClientDataset.Params.ParamByName(´´).asstring := ´´; ]
ClientDataset.Open;
Result := ClientDataset.Data;


GOSTEI 0
Mkoch

Mkoch

25/11/2005

Valeu, muito obrigado pela ajuda.


GOSTEI 0
Leonardo Silva

Leonardo Silva

25/11/2005

Sei que esse post é antigo mais gostaria de saber se é possivel fazer isso na minha estrutura de dados...

vejam nesse link:  https://www.devmedia.com.br/forum/viewtopic.asp?id=396075

PS: não uso clientdataset.
GOSTEI 0
José

José

25/11/2005

Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
GOSTEI 0
POSTAR