Fórum Query em DLL - Qual retorno?? #395976
19/02/2011
0
eis o codigo dela:
Código: function MostraCores : TDataSource;
begin
ConectaBanco;
with DM.sp_TodasAsCores do
begin
Connection := ConectaBanco;
Close;
ProcedureName := 'sp_TodasAsCores';
Open;
ShowMessage('total de registros é: '+ IntToStr(RecordCount));
Result := DM.sp_TodasAsCores.DataSource;
end;
end;
como viram coloquei ate um ShowMessage dentro dela para ter certeza que esta retornando algo... e o DataSource que ela esta retornando esta ligado a minha SP no meu DM... so que na minha aplicação nao recebe os dados... sera que estou colocando o tipo de retorno errado na função...???
na minha aplicação esta assim o codigo:
Código: DBGrid.DataSource := MostraCores;
alguem pode me ajudar nesse problema??
Leonardo Silva
Curtir tópico
+ 0Posts
21/02/2011
Leonardo Xavier
Tudo bem? Bom tive dando uma pesquizada aqui, sobre o seu problema, e fiquei pensando aqui, não fiz uma dll aqui pois nao tenho muito tempo para isso agora, mas com toda certeza vou fazer isso, achei interesante colocar as consultas em dll. bom mas vendo o seu problema...em sua aplicação o comando de dentro de sua funçao na dll ou seja o "ShowMessage('total de registros é: '+ IntToStr(RecordCount));" é apresentado em sua aplicação? ou não aparece a mensagem?
Gostei + 0
21/02/2011
Leonardo Silva
Gostei + 0
24/02/2011
Leonardo Silva
Gostei + 0
24/02/2011
Leonardo Xavier
Result := DM.sp_TodasAsCores.DataSource;
Gostei + 0
24/02/2011
Leonardo Silva
novamente eu pergunto sera que o retorno tem que ser de outro tipo para popular o DBGrid na minha aplicação??
ou é isso mesmo...?
Gostei + 0
04/03/2011
Leonardo Silva
Gostei + 0
05/03/2011
Marco Salles
MostraCores, Vamos agora para a Aplicação ... procedure MostraCores(datasource:TDataSource);stdcall external 'NomeDaSuaDll.dll'; coloque a dll no mesmo diretotio da aplicação Agora coloque um DataSource e Ligue este DataSource ao DbGrid e chame assim MostraCores(SeuDataSource); claro que o dbgrid tem que esta linkado com o SeuDataSource
Gostei + 0
05/03/2011
Leonardo Silva
Gostei + 0
05/03/2011
Marco Salles
Gostei + 0
05/03/2011
Leonardo Silva
Gostei + 0
05/03/2011
Marco Salles
Gostei + 0
06/03/2011
Marco Salles
procedure MostraNome(DataSource :TDataSource);stdcall;
begin
if not Assigned(DM) then
DM := TDM.Create(nil);
Dm.Conexao.Connected:=false;
with DM.ADOQuery1 do
begin
close;
Sql.Clear;
SQL.Add('select * from cliente');
open;
ShowMessage('total de registros é: '+ IntToStr(RecordCount));
end;
dataSource.DataSet:=dm.ADOQuery1;
end;procedure MostraNome (dataSource: TDataSource);stdcall external 'BancoDados.DLL';
MostraNome(DataSource1);
Gostei + 0
06/03/2011
Leonardo Silva
a minha pergunta é, sera que realmente existe a possibilidade dessa combinação? pq na realidade nao vou usar nem query vou usar Stored Procedures (ADO) na minha aplicação... mais o conceito é o mesmo das querys....
to quase pra desistir ja tentei de tudo e nada...
Gostei + 0
06/03/2011
Marco Salles
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)