Consulta usando SqlDataSet, DataSetProvider, ClientDataSet e DataSource
Bom dia pessoal, como faria uma consulta para mostrar no DBGrid? Estou usando SqlDataSet, DataSetProvider, ClientDataSet e DataSource.
Tentei fazer uma consulta usando um sqlDataSet e um DataSource, fiz um teste com SQLQuery mas deu o mesmo problema
Ta dando: Operation not allowed on a unidirectional dataset
Tentei fazer uma consulta usando um sqlDataSet e um DataSource, fiz um teste com SQLQuery mas deu o mesmo problema
Ta dando: Operation not allowed on a unidirectional dataset
Frederico Brigatte***
Curtidas 0
Melhor post
Tomas Raponi
05/05/2013
Frederico, faca o seguinte.
1. para conexao a uma tabela voce precisa dos componentes:
sqlquery (informar sqlconnection).
datasetprovider (informar sqlquery, e colocar true em poAloowCommandtext)
ClientDataSet (informar o ProviderName (datasetprovider).
Datasource( informar o clientdataset).
dbgrid (informar o Datasource).
Pronto..com isso voce tem a ligacao entre os componentes).
2. Para fazer uma consulta tipo Select Codigo, Nome, Endereco from Clientes voce faz o sequinte:
Coloca esse select na linha de CommandText do ClientDataset.
o seu codigo ficaria?
cdsclientes.close; (clientdataset).
cdsclientes.commandtext:='Select Codigo, Nome, Endereco from Clientes';
cdsclientes.open;
No seu DBGRID aparecerao as informacoes que voce quer.
Qualquer duvida manda email: tomas@guestori.com.br
1. para conexao a uma tabela voce precisa dos componentes:
sqlquery (informar sqlconnection).
datasetprovider (informar sqlquery, e colocar true em poAloowCommandtext)
ClientDataSet (informar o ProviderName (datasetprovider).
Datasource( informar o clientdataset).
dbgrid (informar o Datasource).
Pronto..com isso voce tem a ligacao entre os componentes).
2. Para fazer uma consulta tipo Select Codigo, Nome, Endereco from Clientes voce faz o sequinte:
Coloca esse select na linha de CommandText do ClientDataset.
o seu codigo ficaria?
cdsclientes.close; (clientdataset).
cdsclientes.commandtext:='Select Codigo, Nome, Endereco from Clientes';
cdsclientes.open;
No seu DBGRID aparecerao as informacoes que voce quer.
Qualquer duvida manda email: tomas@guestori.com.br
GOSTEI 2
Mais Respostas
Marcos Morais
04/05/2013
Em Primeiro lugar, tenho que te dizer que esse erro é devido ao DbExpress Ser Unidirecional.
a Solução:
01- Você tem que mudar a propriedade DataSet do DataSetProvider para o nome do SqlDataSet;
02- Agora no ClientDataSet mude a propriedade ProviderName para o seu DataSetProvider;
03- Mude a Propriedade do DataSet seu DataSource para o ClientDataSet (um ponto interessante, nunca aponte o DataSource, para o SqlDataSet, pois o mesmo é unidirecional);
04- Feito isso, aponte a propriedade do seu dbgrid para o Seu DataSource.
No DbExpress é assim que se faz, espero ter ajudado. qualquer dúvida, estamos aqui.
a Solução:
01- Você tem que mudar a propriedade DataSet do DataSetProvider para o nome do SqlDataSet;
02- Agora no ClientDataSet mude a propriedade ProviderName para o seu DataSetProvider;
03- Mude a Propriedade do DataSet seu DataSource para o ClientDataSet (um ponto interessante, nunca aponte o DataSource, para o SqlDataSet, pois o mesmo é unidirecional);
04- Feito isso, aponte a propriedade do seu dbgrid para o Seu DataSource.
No DbExpress é assim que se faz, espero ter ajudado. qualquer dúvida, estamos aqui.
GOSTEI 0
Frederico Brigatte***
04/05/2013
Vamos supor que vou montar a consulta, não está feita. Tenho que usar mais um SqlDataSet?
GOSTEI 0
Marcos Morais
04/05/2013
A Consulta em SQL fica no SqlDataSet, você so precisa de um SQLData Set, e os outros componentes já citados, o DataSeProvider, o DataSource, e o ClientDataSet.
GOSTEI 0
Frederico Brigatte***
04/05/2013
Espera um pouco, já tenho um SQLConnection, um SQLDataSet, um DataSetProvider, um ClientDataSet e um DataSource no DataModule, certo?
Não estou entendendo direito essa parte de Consulta.
Não estou entendendo direito essa parte de Consulta.
GOSTEI 0
Frederico Brigatte***
04/05/2013
Esses componentes fazem a conexão, certo? Utilizo para Inserir, Editar e Excluir o ClientDataSet. Certo?
GOSTEI 0
Marcos Morais
04/05/2013
sim, isso mesmo, qual é então a sua dúvida?
GOSTEI 0
Frederico Brigatte***
04/05/2013
Ligo o Grid com o DataSource do ClientDataSet?
GOSTEI 0
Frederico Brigatte***
04/05/2013
Marcos, vc tem MSN?
GOSTEI 0
Frederico Brigatte***
04/05/2013
Obrigado, Tomas, muito explicativo. Valeu.
GOSTEI 0