ClientDataSet abre mas não mostra resultado nos DataWare
Pessoal,
Tenho uma DataModule dentro de um DLL.
Eu crio o DataModule da seguinte maneira no Create do Form principal:
Até aqui tudo bem. O problema vem daqui para frente, tenho no meu DataModule:
SqlConnection + SqlDataSet + DataSetProvider + ClientDataSet + DataSource
SqlDataSet.Command := ´select * from cliente´
Tudo configurado certinho. Compilo tudo e faço a chamada da DLL, o Form principal abre e quando clico no botao com o seguinte codigo:
Nisso ai eu ta tinha ligado o DataSource nos respectivos componentes DataWare .. inclusive para teste coloquei ligado ao DataSource um dbGrid.
Entao quando executo o codigo acima o ShowMessage exibi o primeiro registro encontrado ... isso quer dizer que as informçoes estao no ClientDataSet ... mas estas informacoes nao sao exibidas nos controles DataWare ....
Estou usando o Firebird.
Vou deixar aqui tambem o codigo da DLL:
Bom se alguem ai puder me ajudar.
Tenho uma DataModule dentro de um DLL.
Eu crio o DataModule da seguinte maneira no Create do Form principal:
procedure TfrmPrincipal.FormCreate(Sender: TObject); begin if dmCadastro = nil then dmCadastro := TdmCadastro.Create(nil); end;
Até aqui tudo bem. O problema vem daqui para frente, tenho no meu DataModule:
SqlConnection + SqlDataSet + DataSetProvider + ClientDataSet + DataSource
SqlDataSet.Command := ´select * from cliente´
Tudo configurado certinho. Compilo tudo e faço a chamada da DLL, o Form principal abre e quando clico no botao com o seguinte codigo:
dmCadastro.cdsExecSql.Open; if not dmCadastro.cdsExecSql.IsEmpty then ShowMessage(dmCadastro.cdsExecSql.fieldbyname(´apelido´).AsString);
Nisso ai eu ta tinha ligado o DataSource nos respectivos componentes DataWare .. inclusive para teste coloquei ligado ao DataSource um dbGrid.
Entao quando executo o codigo acima o ShowMessage exibi o primeiro registro encontrado ... isso quer dizer que as informçoes estao no ClientDataSet ... mas estas informacoes nao sao exibidas nos controles DataWare ....
Estou usando o Firebird.
Vou deixar aqui tambem o codigo da DLL:
library IntegraSistema;
uses
SysUtils,
Classes,
Forms,
ufrmPrincipal in ´ufrmPrincipal.pas´ ,
udmCadastro in ´udmCadastro.pas´ {dmCadastro: TDataModule},
ufmClienteLocaliza in ´ufmClienteLocaliza.pas´ ,
ufmVendedorLocaliza in ´ufmVendedorLocaliza.pas´ ,
ufmCotacaoLocaliza in ´ufmCotacaoLocaliza.pas´ ,
ufrmEventoLocaliza in ´ufrmEventoLocaliza.pas´ ;
{$R *.res}
var
OldApplication : TApplication;
OldScreen : TScreen;
procedure IntegraSistemaPadrao; stdcall;
begin
Application := OldApplication;
Screen := OldScreen;
end;
procedure AbreIntegraSistema( aApplication : TApplication; sScreen : TScreen; IdUsu : integer ); stdcall;
begin
if (OldApplication = nil) and (OldScreen = nil) then begin
OldApplication := Application;
OldScreen := Screen;
Application := aApplication;
Screen := sScreen;
end;
if frmPrincipal = nil then begin
frmPrincipal := TfrmPrincipal.Create(Application);
frmPrincipal.IdUsuario := IdUsu;
end;
end;
Exports
IntegraSistemaPadrao,
AbreIntegraSistema;
begin
end.
Bom se alguem ai puder me ajudar.
Mmoreira
Curtidas 0
Respostas
Mmoreira
06/12/2006
Pessoal,
Seguindo uma diaca passada pelo EmersonEN eu tive que passar o DataSet do DataSource em tempo de execução ... ao que parece em algum momento do processo todo esta referencia é perdida entao bastou eu fazer:
O interessante seria descobri porque ocorre este problema, mas vou deixar isso para depois porque tenho que correr com isso .. pois este probleminha me atrapalhou todo.
Quiz deixar registrado aqui pois se alguem tiver o mesmo problema ja sabe como resolver ....
Valew
Seguindo uma diaca passada pelo EmersonEN eu tive que passar o DataSet do DataSource em tempo de execução ... ao que parece em algum momento do processo todo esta referencia é perdida entao bastou eu fazer:
dmCadastro.ClientDataSet_Cliente.Close; DataSource1.DataSet := dmCadastro.ClientDataSet_Cliente; dmCadastro.ClientDataSet_Cliente.Open;
O interessante seria descobri porque ocorre este problema, mas vou deixar isso para depois porque tenho que correr com isso .. pois este probleminha me atrapalhou todo.
Quiz deixar registrado aqui pois se alguem tiver o mesmo problema ja sabe como resolver ....
Valew
GOSTEI 0