DbGrid não mostra os dados em tempo de execução

08/08/2008

6

Pessoal estou com o seguinte problema , eu crio os componentes tudo em tempo de execução : sqldataset,datasetprovider,clientdataset e datasource.
Eu crio eles em tempo de execução pois uso uma tabela temporaria.
Criando eu ligo e ajusto as propriedades dos mesmo tudo em tempo de execução ... o problema é o seguinte : eu ligo o datasource no bdgrid e abro o clientdataset mais ele nao mostra nada no grid apenas os nomes dos campos ... alguem pode me ajudar abaixo o meu codigo:

//Cria o SqlDataSet
sqlArqRetorno := TSQLDataSet.Create(nil);
sqlArqRetorno.SQLConnection := fDM.sqlConexao;

//Passa o select para o SqlDataSet
sqlArqRetorno.CommandText := ´SELECT ID_RETORNO,NOSSONUMER,VALOR, ´´False´´ as Marque FROM RETORNO´;
sqlArqRetorno.Active := true;
sqlArqRetorno.Active := false;

//Cria o DataSetProvider
dspArqRetorno := TDataSetProvider.Create(nil);
dspArqRetorno.DataSet := sqlArqRetorno;

//Cria o ClientDataSet
cdsArqRetorno := TClientDataSet.Create(nil);
cdsArqRetorno.ProviderName := ´dspArqRetorno´;
cdsArqRetorno.Close;
campos:=TIntegerField.Create(Self);
campos.FieldName:=´ID_RETORNO´;
campos.Name:=cdsArqRetorno.Name+campos.FieldName;
campos.Index:=cdsArqRetorno.FieldCount;
campos.DataSet:=cdsArqRetorno;
campos.DisplayLabel:=´Código´;

campos:=TStringField.Create(Self);
campos.FieldName:=´NOSSONUMER´;
campos.Name:=cdsArqRetorno.Name+campos.FieldName;
campos.Index:=cdsArqRetorno.FieldCount;
campos.DataSet:=cdsArqRetorno;
campos.DisplayLabel:=´Nosso Número´;

campos:=TFloatField.Create(Self);
campos.FieldName:=´VALOR´;
campos.Name:=cdsArqRetorno.Name+campos.FieldName;
campos.Index:=cdsArqRetorno.FieldCount;
campos.DataSet:=cdsArqRetorno;
campos.DisplayLabel:=´Valor´;

campos:=TFloatField.Create(Self);
campos.FieldName:=´MARQUE´;
campos.Name:=cdsArqRetorno.Name+campos.FieldName;
campos.Index:=cdsArqRetorno.FieldCount;
campos.DataSet:=cdsArqRetorno;
campos.DisplayLabel:=´Escolha´;
cdsArqRetorno.CreateDataSet;
cdsArqRetorno.LogChanges := false;
cdsArqRetorno.Open;

//Cria o DataSource
dsArqRetorno := TDataSource.Create(nil);
dsArqRetorno.DataSet := cdsArqRetorno;
//Liga com o Grid

DBGrid1.DataSource := dsArqRetorno;


Desde ja agraço quem poder me ajudar ....


Responder

Posts

faça o select no banco de dados para ver se ele retorna realmente alguma coisa:

SELECT ID_RETORNO,NOSSONUMER,VALOR, ´´False´´ as Marque FROM RETORNO

mas para quê tantas camadas para usar tabela temporária... se eu entendi
bem, vc pode colocar no form um TClientDataSet, criar os campos manualmente e quando for abrir para usar coloque assim:

nome_client.CreateDataSet;

aí é só usar normalmente como se fosse uma tabela física...


Responder

08/08/2008

Danilomolina

Álison Bissoli obrigado pela dica ... realmente não precisava de tantas camadas igual eu estava fazendo ... colocando o clientdataset no form e deu certo ... obrigado pela ajuda !!!!


Responder