DbGrid não mostra os dados em tempo de execução
08/08/2008
0
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 ....
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 ....
Danilomolina
Curtir tópico
+ 0
Responder
Posts
08/08/2008
álison Bissoli
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...
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
Clique aqui para fazer login e interagir na Comunidade :)