Mestre/Detalhe usando DBExpress e SOAP
Bom Dia!
Pessoal estou com o seguinte problema:
Eu tenho uma aplicação n/camadas usando SOAP e componentes DBExpress.
No DataModule servidor eu tenho um SQLDataSet com os seguinte atributos:
Name = SQLConsultas
CommandText = '' (eu não coloco o SQL aqui pois virá dinamicamente através do ClientDataSet)
E um DataSetProvider com os seguintes atributos:
Name = DSPConsultas
poAllowCommandText = True; ( isso para eu poder enviar o meu SQL dinamicamente);
Preciso exibir uma tabela Mestre/Detalhe na camada cliente, porém não sei com fazer isto.
Na camada cliente eu tenho dois ClientDataSet
Ex.:
CDSTabelaMestre
-> DataSetProvider = DSPConsultas
-> RemoteServer = SoapConn_DM
CDSTabelaDetail
-> DataSetProvider = DSPConsultas
-> RemoteServer = SoapConn_DM
Eu preciso que ao eu selecionar um registro da tabela Mestre sejam exibidos os dados da tabela detail, porém não posso usar o Nested pois na camada cliente eu não tenho SQLDataSet's, somente ClientDataSet's que são linkados aos DataSetProviders através de uma conexão SOAP.
Eu tentei utilizar o evento AfterScroll da Tabela Mestre para abrir a tabela Detail porém fica muito lento.
Alguém poderia me ajudar!
Pessoal estou com o seguinte problema:
Eu tenho uma aplicação n/camadas usando SOAP e componentes DBExpress.
No DataModule servidor eu tenho um SQLDataSet com os seguinte atributos:
Name = SQLConsultas
CommandText = '' (eu não coloco o SQL aqui pois virá dinamicamente através do ClientDataSet)
E um DataSetProvider com os seguintes atributos:
Name = DSPConsultas
poAllowCommandText = True; ( isso para eu poder enviar o meu SQL dinamicamente);
Preciso exibir uma tabela Mestre/Detalhe na camada cliente, porém não sei com fazer isto.
Na camada cliente eu tenho dois ClientDataSet
Ex.:
CDSTabelaMestre
-> DataSetProvider = DSPConsultas
-> RemoteServer = SoapConn_DM
CDSTabelaDetail
-> DataSetProvider = DSPConsultas
-> RemoteServer = SoapConn_DM
Eu preciso que ao eu selecionar um registro da tabela Mestre sejam exibidos os dados da tabela detail, porém não posso usar o Nested pois na camada cliente eu não tenho SQLDataSet's, somente ClientDataSet's que são linkados aos DataSetProviders através de uma conexão SOAP.
Eu tentei utilizar o evento AfterScroll da Tabela Mestre para abrir a tabela Detail porém fica muito lento.
Alguém poderia me ajudar!
Codigostr
Curtidas 0
Respostas
Ader Santos
12/05/2010
Amigo, adicione mais um SQLDataSet, o qual vai receber a sintaxe 'SELECT * FROM TabDetalhe WHERE IDForeignKeyTabDetail =:IDPrimaryKeyTabMaster'.
Certifique-se que a propriedade ProviderFlags do campo ID de sua tabela Master:
- pfInkey = true
Adicione um DataSource e sete as propriedades:
- Name = DTSConsultas
- DataSet = DSPContultas
Em seu SQLConsultas, sete as propriedades:
- DataSource = DTSConsultas
Em seu DSPContultas sete as propriedades:
- DataSet =
Certifique-se que a propriedade UpDateMode do DataSetProvider esteja setada como [whereKeyOnly], pois esta é usada como parâmetro da sintaxe SQL.
Basta apenas um ClientDataSet. Dê uma olhada neste video, ensina tudo.
https://www.devmedia.com.br/post-4405-Master-Detail-com-dbExpress.html
Certifique-se que a propriedade ProviderFlags do campo ID de sua tabela Master:
- pfInkey = true
Adicione um DataSource e sete as propriedades:
- Name = DTSConsultas
- DataSet = DSPContultas
Em seu SQLConsultas, sete as propriedades:
- DataSource = DTSConsultas
Em seu DSPContultas sete as propriedades:
- DataSet =
Certifique-se que a propriedade UpDateMode do DataSetProvider esteja setada como [whereKeyOnly], pois esta é usada como parâmetro da sintaxe SQL.
Basta apenas um ClientDataSet. Dê uma olhada neste video, ensina tudo.
https://www.devmedia.com.br/post-4405-Master-Detail-com-dbExpress.html
GOSTEI 0