Uma tabela mestre e duas/tres detalhes com DBExpress
Tem como utilizar uma tabela mestre e duas/tres detalhes com DBExpress? Se sim, como faço isso? Necessito disso tanto para inserção de dados com consultas. Se alguem tiver um pequeno exemplo de como se faz e que posso me enviar ficarei muito agradecido.
Obrigado e aguardo qualquer ajuda.
Abraço a todos.
Obrigado e aguardo qualquer ajuda.
Abraço a todos.
Aprendiz_ce
Curtidas 0
Respostas
Marco Salles
29/05/2009
Jeito tem... Mas como passar isto
A mágica é feita com DataSources e apenas um DataSetProvider
ligado Ao Mestre e ao comamando Sql ( Usar o memso Parametro)
Exemplo de ligação
SqlMestre -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
SqlDetalheMestre -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
SqlDetalhe -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
(DataSource) *****NOTE UM SO DATASOURCE para Os Tres
DspMestre --->> Ligado ao SqlMestre
DsMestre --->>> Ligado no SqlMestre
SqlDetalheMestre --->>> Propriedade DaTaSorce Ligado ao DsMestre
DsDetalhe ---->>> Ligado ao SqlDetalheMestre
SqlDetalhe --->>> Propriedade Datasouce Ligado ao DsDetalhe
Todos os Sql com a mesmo parametro (commandText)
SqlMestre
Select * From Tabela Mestre Where Mes_Cod =:Mes_Cod
SqlDetalheMestre
Select * From Tabela MestreDetalhe Where Mes_Cod =:Mes_Cod
SqlDetalhe
Select * From Tabela Detalhe Where Mes_Cod =:Mes_Cod
As Tes tabelas tem o Mesmo Campo (Mes_Cod) ***Que se relacionam
na Base de Dados
Na tabela Mestre
Mes_Cod é Chave Primaria
Na Tabela MestreDetalhe
Mes_Cod é Chave estrangeira para a Tabela Mestre
Na Tabela Detalhe
Mes_Cod é chave estrangeira para a Tabela DetalheMestre
É claro que tem que configurar os parametros , e tb os Providers Flags
Para ver se esta priemeira Etapa esta legau é dar um Open en cada SqlDataSetProvider
Se tudo der certo o proximo passo sera carregar e configuarar os Cds.
CdsMestre
Propriedade DataSetProvider --->> Ligar ao DspMestre
(De Duplo Clik e Adicione-os Tfields
Deve Aparecer um Campo DataSetNested dst que representa a Tabela
DetalheMestre
cdsDetalheMestre
Ai esta a Dica
Propriedade DataSetProvider --->> Deixar em BRANCO
propriedade DataSetField -->> Ligar ao Dst ( o Tfield ´especial´ que apareceu no CdsMestre
Novamente : De Duplo Clik e Adicione-os Tfields
Deve Aparecer um Campo DataSetNested dst que representa a Tabela
Detalhe
cdsDetalhe
Ai esta a Dica Novamente
Propriedade DataSetProvider --->> Deixar em BRANCO
propriedade DataSetField -->> Ligar ao Dst ( o Tfield ´especial´ que apareceu no CdsDetalheMestre
Novamente : De Duplo Clik e Adicione-os Tfields
Aqui ja não deve aparecer nenhum Tfield Especial
Para que isto funcione é necessário deixar todos os SQLDATASET ABERTOS
Conclusão::: O Processo é repetitivo , não é deve ser feito com Atençaõ
cada passo tera conseqeuncias no proximo passo.
Boa sorte
A mágica é feita com DataSources e apenas um DataSetProvider
ligado Ao Mestre e ao comamando Sql ( Usar o memso Parametro)
Exemplo de ligação
SqlMestre -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
SqlDetalheMestre -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
SqlDetalhe -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
(DataSource) *****NOTE UM SO DATASOURCE para Os Tres
DspMestre --->> Ligado ao SqlMestre
DsMestre --->>> Ligado no SqlMestre
SqlDetalheMestre --->>> Propriedade DaTaSorce Ligado ao DsMestre
DsDetalhe ---->>> Ligado ao SqlDetalheMestre
SqlDetalhe --->>> Propriedade Datasouce Ligado ao DsDetalhe
Todos os Sql com a mesmo parametro (commandText)
SqlMestre
Select * From Tabela Mestre Where Mes_Cod =:Mes_Cod
SqlDetalheMestre
Select * From Tabela MestreDetalhe Where Mes_Cod =:Mes_Cod
SqlDetalhe
Select * From Tabela Detalhe Where Mes_Cod =:Mes_Cod
As Tes tabelas tem o Mesmo Campo (Mes_Cod) ***Que se relacionam
na Base de Dados
Na tabela Mestre
Mes_Cod é Chave Primaria
Na Tabela MestreDetalhe
Mes_Cod é Chave estrangeira para a Tabela Mestre
Na Tabela Detalhe
Mes_Cod é chave estrangeira para a Tabela DetalheMestre
É claro que tem que configurar os parametros , e tb os Providers Flags
Para ver se esta priemeira Etapa esta legau é dar um Open en cada SqlDataSetProvider
Se tudo der certo o proximo passo sera carregar e configuarar os Cds.
CdsMestre
Propriedade DataSetProvider --->> Ligar ao DspMestre
(De Duplo Clik e Adicione-os Tfields
Deve Aparecer um Campo DataSetNested dst que representa a Tabela
DetalheMestre
cdsDetalheMestre
Ai esta a Dica
Propriedade DataSetProvider --->> Deixar em BRANCO
propriedade DataSetField -->> Ligar ao Dst ( o Tfield ´especial´ que apareceu no CdsMestre
Novamente : De Duplo Clik e Adicione-os Tfields
Deve Aparecer um Campo DataSetNested dst que representa a Tabela
Detalhe
cdsDetalhe
Ai esta a Dica Novamente
Propriedade DataSetProvider --->> Deixar em BRANCO
propriedade DataSetField -->> Ligar ao Dst ( o Tfield ´especial´ que apareceu no CdsDetalheMestre
Novamente : De Duplo Clik e Adicione-os Tfields
Aqui ja não deve aparecer nenhum Tfield Especial
Para que isto funcione é necessário deixar todos os SQLDATASET ABERTOS
Conclusão::: O Processo é repetitivo , não é deve ser feito com Atençaõ
cada passo tera conseqeuncias no proximo passo.
Boa sorte
GOSTEI 0
Aprendiz_ce
29/05/2009
[quote:5d0cfb990c=´Marco Salles´]Jeito tem... Mas como passar isto
A mágica é feita com DataSources e apenas um DataSetProvider
ligado Ao Mestre e ao comamando Sql ( Usar o memso Parametro)
Exemplo de ligação
SqlMestre -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
SqlDetalheMestre -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
SqlDetalhe -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
(DataSource) *****NOTE UM SO DATASOURCE para Os Tres
DspMestre --->> Ligado ao SqlMestre
DsMestre --->>> Ligado no SqlMestre
SqlDetalheMestre --->>> Propriedade DaTaSorce Ligado ao DsMestre
DsDetalhe ---->>> Ligado ao SqlDetalheMestre
SqlDetalhe --->>> Propriedade Datasouce Ligado ao DsDetalhe
Todos os Sql com a mesmo parametro (commandText)
SqlMestre
Select * From Tabela Mestre Where Mes_Cod =:Mes_Cod
SqlDetalheMestre
Select * From Tabela MestreDetalhe Where Mes_Cod =:Mes_Cod
SqlDetalhe
Select * From Tabela Detalhe Where Mes_Cod =:Mes_Cod
As Tes tabelas tem o Mesmo Campo (Mes_Cod) ***Que se relacionam
na Base de Dados
Na tabela Mestre
Mes_Cod é Chave Primaria
Na Tabela MestreDetalhe
Mes_Cod é Chave estrangeira para a Tabela Mestre
Na Tabela Detalhe
Mes_Cod é chave estrangeira para a Tabela DetalheMestre
É claro que tem que configurar os parametros , e tb os Providers Flags
Para ver se esta priemeira Etapa esta legau é dar um Open en cada SqlDataSetProvider
Se tudo der certo o proximo passo sera carregar e configuarar os Cds.
CdsMestre
Propriedade DataSetProvider --->> Ligar ao DspMestre
(De Duplo Clik e Adicione-os Tfields
Deve Aparecer um Campo DataSetNested dst que representa a Tabela
DetalheMestre
cdsDetalheMestre
Ai esta a Dica
Propriedade DataSetProvider --->> Deixar em BRANCO
propriedade DataSetField -->> Ligar ao Dst ( o Tfield ´especial´ que apareceu no CdsMestre
Novamente : De Duplo Clik e Adicione-os Tfields
Deve Aparecer um Campo DataSetNested dst que representa a Tabela
Detalhe
cdsDetalhe
Ai esta a Dica Novamente
Propriedade DataSetProvider --->> Deixar em BRANCO
propriedade DataSetField -->> Ligar ao Dst ( o Tfield ´especial´ que apareceu no CdsDetalheMestre
Novamente : De Duplo Clik e Adicione-os Tfields
Aqui ja não deve aparecer nenhum Tfield Especial
Para que isto funcione é necessário deixar todos os SQLDATASET ABERTOS
Conclusão::: O Processo é repetitivo , não é deve ser feito com Atençaõ
cada passo tera conseqeuncias no proximo passo.
Boa sorte[/quote:5d0cfb990c]
Olá,
Confesso que fiquei meio confuso com o exemplo passado por você. Vou fazer um EXEMPLO na prática e vê se consigo entendê-lo melhor.
Outra coisa:
Esse exemplo tanto pode ser utilizado para consultar como inserir dados, né?
Muito obrigado pela sua atenção e qualquer coisa darei retorno.
Abraço.
A mágica é feita com DataSources e apenas um DataSetProvider
ligado Ao Mestre e ao comamando Sql ( Usar o memso Parametro)
Exemplo de ligação
SqlMestre -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
SqlDetalheMestre -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
SqlDetalhe -->> Propriedade SqlConnection -->> Ligar ao SqlConnection
(DataSource) *****NOTE UM SO DATASOURCE para Os Tres
DspMestre --->> Ligado ao SqlMestre
DsMestre --->>> Ligado no SqlMestre
SqlDetalheMestre --->>> Propriedade DaTaSorce Ligado ao DsMestre
DsDetalhe ---->>> Ligado ao SqlDetalheMestre
SqlDetalhe --->>> Propriedade Datasouce Ligado ao DsDetalhe
Todos os Sql com a mesmo parametro (commandText)
SqlMestre
Select * From Tabela Mestre Where Mes_Cod =:Mes_Cod
SqlDetalheMestre
Select * From Tabela MestreDetalhe Where Mes_Cod =:Mes_Cod
SqlDetalhe
Select * From Tabela Detalhe Where Mes_Cod =:Mes_Cod
As Tes tabelas tem o Mesmo Campo (Mes_Cod) ***Que se relacionam
na Base de Dados
Na tabela Mestre
Mes_Cod é Chave Primaria
Na Tabela MestreDetalhe
Mes_Cod é Chave estrangeira para a Tabela Mestre
Na Tabela Detalhe
Mes_Cod é chave estrangeira para a Tabela DetalheMestre
É claro que tem que configurar os parametros , e tb os Providers Flags
Para ver se esta priemeira Etapa esta legau é dar um Open en cada SqlDataSetProvider
Se tudo der certo o proximo passo sera carregar e configuarar os Cds.
CdsMestre
Propriedade DataSetProvider --->> Ligar ao DspMestre
(De Duplo Clik e Adicione-os Tfields
Deve Aparecer um Campo DataSetNested dst que representa a Tabela
DetalheMestre
cdsDetalheMestre
Ai esta a Dica
Propriedade DataSetProvider --->> Deixar em BRANCO
propriedade DataSetField -->> Ligar ao Dst ( o Tfield ´especial´ que apareceu no CdsMestre
Novamente : De Duplo Clik e Adicione-os Tfields
Deve Aparecer um Campo DataSetNested dst que representa a Tabela
Detalhe
cdsDetalhe
Ai esta a Dica Novamente
Propriedade DataSetProvider --->> Deixar em BRANCO
propriedade DataSetField -->> Ligar ao Dst ( o Tfield ´especial´ que apareceu no CdsDetalheMestre
Novamente : De Duplo Clik e Adicione-os Tfields
Aqui ja não deve aparecer nenhum Tfield Especial
Para que isto funcione é necessário deixar todos os SQLDATASET ABERTOS
Conclusão::: O Processo é repetitivo , não é deve ser feito com Atençaõ
cada passo tera conseqeuncias no proximo passo.
Boa sorte[/quote:5d0cfb990c]
Olá,
Confesso que fiquei meio confuso com o exemplo passado por você. Vou fazer um EXEMPLO na prática e vê se consigo entendê-lo melhor.
Outra coisa:
Esse exemplo tanto pode ser utilizado para consultar como inserir dados, né?
Muito obrigado pela sua atenção e qualquer coisa darei retorno.
Abraço.
GOSTEI 0
Marco Salles
29/05/2009
Confesso que fiquei meio confuso com o exemplo passado por você. Vou fazer um EXEMPLO na prática e vê se consigo entendê-lo melhor.
é realmente... Pode ser que normalizai muito < este exemplo é o caso
de todas as tres tabelas se relacionarem com o mesmo codigo
Um exemplo é o caso de Tabela Clientes , Funcionarios e Fornecedore
que são pessoas fisicas ou Juridica que por sua ves são pessoas
Pq nada impede por exemplo um Funcionário ser Tb Cliente
O que ocorre com a maioria dos aplicativos é ter dois cadastro
Um endereço para Funcionario e Outro para o Funcionario Cliente
Porém esta reduntancia se resolve com Normalização e neste caso
usando a facilidade RAD do Delphi construimos o Relacionamento
Mestre Detalhe de modo bem simples
Mas Talvez vc queira um Exemplo menos normalizado ( com é o cado por
exempllo de :
Tabela Vendas --->> Tabela Clientes -->> Tabela Telefones dos clientes
Aonde
Tabela Vendas se relacina com Clientes
Tabela Clientes se relaciona com Telefones dos clientes
eu entendi errado sua duvida...
De qq Forma Monte primeiro a Tabela , defina os Relacionamentos e
pratique para ver as dificuldades.. A prática é nosso melhor aliado
GOSTEI 0
Aprendiz_ce
29/05/2009
[quote:9d10eeb859=´Marco Salles´]
é realmente... Pode ser que normalizai muito < este exemplo é o caso
de todas as tres tabelas se relacionarem com o mesmo codigo
Um exemplo é o caso de Tabela Clientes , Funcionarios e Fornecedore
que são pessoas fisicas ou Juridica que por sua ves são pessoas
Pq nada impede por exemplo um Funcionário ser Tb Cliente
O que ocorre com a maioria dos aplicativos é ter dois cadastro
Um endereço para Funcionario e Outro para o Funcionario Cliente
Porém esta reduntancia se resolve com Normalização e neste caso
usando a facilidade RAD do Delphi construimos o Relacionamento
Mestre Detalhe de modo bem simples
Mas Talvez vc queira um Exemplo menos normalizado ( com é o cado por
exempllo de :
Tabela Vendas --->> Tabela Clientes -->> Tabela Telefones dos clientes
Aonde
Tabela Vendas se relacina com Clientes
Tabela Clientes se relaciona com Telefones dos clientes
eu entendi errado sua duvida...
De qq Forma Monte primeiro a Tabela , defina os Relacionamentos e
pratique para ver as dificuldades.. A prática é nosso melhor aliado[/quote:9d10eeb859]
Entendo prefeitamente o que você quis dizer. Utilizando NORMATIZAÇÃO com você mesmo menciona, a coisa fica até melhor.
Estou vendo aqui como fazer o que eu necessito baseado no seu exemplo e caso eu me nao consiga, vou aqui pra informar.
Obrigado pela sua atenção.
Abraço.
Confesso que fiquei meio confuso com o exemplo passado por você. Vou fazer um EXEMPLO na prática e vê se consigo entendê-lo melhor.
é realmente... Pode ser que normalizai muito < este exemplo é o caso
de todas as tres tabelas se relacionarem com o mesmo codigo
Um exemplo é o caso de Tabela Clientes , Funcionarios e Fornecedore
que são pessoas fisicas ou Juridica que por sua ves são pessoas
Pq nada impede por exemplo um Funcionário ser Tb Cliente
O que ocorre com a maioria dos aplicativos é ter dois cadastro
Um endereço para Funcionario e Outro para o Funcionario Cliente
Porém esta reduntancia se resolve com Normalização e neste caso
usando a facilidade RAD do Delphi construimos o Relacionamento
Mestre Detalhe de modo bem simples
Mas Talvez vc queira um Exemplo menos normalizado ( com é o cado por
exempllo de :
Tabela Vendas --->> Tabela Clientes -->> Tabela Telefones dos clientes
Aonde
Tabela Vendas se relacina com Clientes
Tabela Clientes se relaciona com Telefones dos clientes
eu entendi errado sua duvida...
De qq Forma Monte primeiro a Tabela , defina os Relacionamentos e
pratique para ver as dificuldades.. A prática é nosso melhor aliado[/quote:9d10eeb859]
Entendo prefeitamente o que você quis dizer. Utilizando NORMATIZAÇÃO com você mesmo menciona, a coisa fica até melhor.
Estou vendo aqui como fazer o que eu necessito baseado no seu exemplo e caso eu me nao consiga, vou aqui pra informar.
Obrigado pela sua atenção.
Abraço.
GOSTEI 0
Aprendiz_ce
29/05/2009
[quote:7c42c1b003=´Marco Salles´][quote:7c42c1b003]Confesso que fiquei meio confuso com o exemplo passado por você. Vou fazer um EXEMPLO na prática e vê se consigo entendê-lo melhor.
é realmente... Pode ser que normalizai muito < este exemplo é o caso
de todas as tres tabelas se relacionarem com o mesmo codigo
Um exemplo é o caso de Tabela Clientes , Funcionarios e Fornecedore
que são pessoas fisicas ou Juridica que por sua ves são pessoas
Pq nada impede por exemplo um Funcionário ser Tb Cliente
O que ocorre com a maioria dos aplicativos é ter dois cadastro
Um endereço para Funcionario e Outro para o Funcionario Cliente
Porém esta reduntancia se resolve com Normalização e neste caso
usando a facilidade RAD do Delphi construimos o Relacionamento
Mestre Detalhe de modo bem simples
Mas Talvez vc queira um Exemplo menos normalizado ( com é o cado por
exempllo de :
Tabela Vendas --->> Tabela Clientes -->> Tabela Telefones dos clientes
Aonde
Tabela Vendas se relacina com Clientes
Tabela Clientes se relaciona com Telefones dos clientes
eu entendi errado sua duvida...
De qq Forma Monte primeiro a Tabela , defina os Relacionamentos e
pratique para ver as dificuldades.. A prática é nosso melhor aliado[/quote:7c42c1b003]
Entendo prefeitamente o que você quis dizer. Utilizando NORMATIZAÇÃO com você mesmo menciona, a coisa fica até melhor.
Estou vendo aqui como fazer o que eu necessito baseado no seu exemplo e caso eu me nao consiga, vou aqui pra informar.
Obrigado pela sua atenção.
Abraço.[/quote:7c42c1b003]
Olá,
Fiz o procedimento e deu tudo certinho.
Agora, me tira outra dúvida se possível. Caso eu queira deixa a ´regra de negocios´ no banco de dados como seria o procedimento E também no caso de estar utilizando ´3 camadas´ como ficaria se procediemento?
Obrigado mais uma vez pela sua atenção e aguardo retorno.
Um forte abraço.
GOSTEI 0
Marco Salles
29/05/2009
no caso de estar utilizando ´3 camadas´ como ficaria se procediemento?
Mesmo que vc esteja usando uma Aplicação Cliente\Server ´Normal´
O DbExpress Local funciona de forma muito semelhante ao DataSnap
Multicamadas por fazer uso dos componentes ClientDataSet e
DataSetProvider
As ligações (procedimentos) se é que eu entendi direito , praticamente
são as mesmas , so que as camadas se comunicarão atraves de
protocolos que implemetaraão uma interface..Agora o tipo de protocolo
que será utilizado nesta comunicação , dependerá da Tecnologia
escolhida .Geralmente se esta utilizando : O COM+, O SOAP , BSS
pois algumas outros protocolos suportados pelo DataSnap , foram
descontinuados.
Caso eu queira deixa a ´regra de negocios´ no banco de dados como seria o procedimento
Ai vd deve Usar Stored Procedures e Triggers ..O que consiste isto ?
é vc executar inserçoes diretamente no Banco sem Utilizar métodos
ou funçoes na Aplicação Delphi . Um exemplo prético é o Relacionamento
entre uma Tabela [parcela] e uma Tabela [Caixa] ... Para cada baixa
da Tabela [Parcela] é gerada um lançamento na Tabela [caixa]
Porém outras situações de Relacionamentos (com é o caso de [Telefones]
e [clientes] , não requer o uso de Stored Procedures e Triggers . Pois nen
todo cliente tem telefone e essas inserções não são Automaticas a ponto
de uma gerar outra automaticamente
Então a aplicação disso é criteriosa e particular
GOSTEI 0
Aprendiz_ce
29/05/2009
[quote:a89325e75a=´Marco Salles´]
Mesmo que vc esteja usando uma Aplicação Cliente\Server ´Normal´
O DbExpress Local funciona de forma muito semelhante ao DataSnap
Multicamadas por fazer uso dos componentes ClientDataSet e
DataSetProvider
As ligações (procedimentos) se é que eu entendi direito , praticamente
são as mesmas , so que as camadas se comunicarão atraves de
protocolos que implemetaraão uma interface..Agora o tipo de protocolo
que será utilizado nesta comunicação , dependerá da Tecnologia
escolhida .Geralmente se esta utilizando : O COM+, O SOAP , BSS
pois algumas outros protocolos suportados pelo DataSnap , foram
descontinuados.
Ai vd deve Usar Stored Procedures e Triggers ..O que consiste isto ?
é vc executar inserçoes diretamente no Banco sem Utilizar métodos
ou funçoes na Aplicação Delphi . Um exemplo prético é o Relacionamento
entre uma Tabela [parcela] e uma Tabela [Caixa] ... Para cada baixa
da Tabela [Parcela] é gerada um lançamento na Tabela [caixa]
Porém outras situações de Relacionamentos (com é o caso de [Telefones]
e [clientes] , não requer o uso de Stored Procedures e Triggers . Pois nen
todo cliente tem telefone e essas inserções não são Automaticas a ponto
de uma gerar outra automaticamente
Então a aplicação disso é criteriosa e particular[/quote:a89325e75a]
Beleza, mas quanto as tecnologias empregadas para 3 camadas e stored procedues/triggers para a regra de negocios no banco de dados, eu não tenho dúvidas não. A minha dúvida mesmo é sobre a interface/acesso a dados do aplicativo. No segundo caso, como é que eu monto isso? Da mesma forma com o DBExpress ou não?
Obrigado mais uma vez pela sua atenção e aguardo seu comentário.
Abraço.
no caso de estar utilizando ´3 camadas´ como ficaria se procediemento?
Mesmo que vc esteja usando uma Aplicação Cliente\Server ´Normal´
O DbExpress Local funciona de forma muito semelhante ao DataSnap
Multicamadas por fazer uso dos componentes ClientDataSet e
DataSetProvider
As ligações (procedimentos) se é que eu entendi direito , praticamente
são as mesmas , so que as camadas se comunicarão atraves de
protocolos que implemetaraão uma interface..Agora o tipo de protocolo
que será utilizado nesta comunicação , dependerá da Tecnologia
escolhida .Geralmente se esta utilizando : O COM+, O SOAP , BSS
pois algumas outros protocolos suportados pelo DataSnap , foram
descontinuados.
Caso eu queira deixa a ´regra de negocios´ no banco de dados como seria o procedimento
Ai vd deve Usar Stored Procedures e Triggers ..O que consiste isto ?
é vc executar inserçoes diretamente no Banco sem Utilizar métodos
ou funçoes na Aplicação Delphi . Um exemplo prético é o Relacionamento
entre uma Tabela [parcela] e uma Tabela [Caixa] ... Para cada baixa
da Tabela [Parcela] é gerada um lançamento na Tabela [caixa]
Porém outras situações de Relacionamentos (com é o caso de [Telefones]
e [clientes] , não requer o uso de Stored Procedures e Triggers . Pois nen
todo cliente tem telefone e essas inserções não são Automaticas a ponto
de uma gerar outra automaticamente
Então a aplicação disso é criteriosa e particular[/quote:a89325e75a]
Beleza, mas quanto as tecnologias empregadas para 3 camadas e stored procedues/triggers para a regra de negocios no banco de dados, eu não tenho dúvidas não. A minha dúvida mesmo é sobre a interface/acesso a dados do aplicativo. No segundo caso, como é que eu monto isso? Da mesma forma com o DBExpress ou não?
Obrigado mais uma vez pela sua atenção e aguardo seu comentário.
Abraço.
GOSTEI 0
Aprendiz_ce
29/05/2009
[quote:5571b3635c=´Marco Salles´][quote:5571b3635c]no caso de estar utilizando ´3 camadas´ como ficaria se procediemento?
Mesmo que vc esteja usando uma Aplicação Cliente\Server ´Normal´
O DbExpress Local funciona de forma muito semelhante ao DataSnap
Multicamadas por fazer uso dos componentes ClientDataSet e
DataSetProvider
As ligações (procedimentos) se é que eu entendi direito , praticamente
são as mesmas , so que as camadas se comunicarão atraves de
protocolos que implemetaraão uma interface..Agora o tipo de protocolo
que será utilizado nesta comunicação , dependerá da Tecnologia
escolhida .Geralmente se esta utilizando : O COM+, O SOAP , BSS
pois algumas outros protocolos suportados pelo DataSnap , foram
descontinuados.
Caso eu queira deixa a ´regra de negocios´ no banco de dados como seria o procedimento
Ai vd deve Usar Stored Procedures e Triggers ..O que consiste isto ?
é vc executar inserçoes diretamente no Banco sem Utilizar métodos
ou funçoes na Aplicação Delphi . Um exemplo prético é o Relacionamento
entre uma Tabela [parcela] e uma Tabela [Caixa] ... Para cada baixa
da Tabela [Parcela] é gerada um lançamento na Tabela [caixa]
Porém outras situações de Relacionamentos (com é o caso de [Telefones]
e [clientes] , não requer o uso de Stored Procedures e Triggers . Pois nen
todo cliente tem telefone e essas inserções não são Automaticas a ponto
de uma gerar outra automaticamente
Então a aplicação disso é criteriosa e particular[/quote:5571b3635c]
Beleza, mas quanto as tecnologias empregadas para 3 camadas e stored procedues/triggers para a regra de negocios no banco de dados, eu não tenho dúvidas não. A minha dúvida mesmo é sobre a interface/acesso a dados do aplicativo. No segundo caso, como é que eu monto isso? Da mesma forma com o DBExpress ou não?
Obrigado mais uma vez pela sua atenção e aguardo seu comentário.
Abraço.[/quote:5571b3635c]
complementando:
Mas a dúvida é em cima da questão do ´mestre/detalhe´.
Espero que tenha entendido.
GOSTEI 0
Marco Salles
29/05/2009
complementando:
Mas a dúvida é em cima da questão do ´mestre/detalhe´.
Espero que tenha entendido.
Então , monte o Banco peq. com poucos bancos
Passe para mim
Que eu monto para vc a estrutura
Ok...
GOSTEI 0
Aprendiz_ce
29/05/2009
[quote:b08ce3addd=´Marco Salles´]
Então , monte o Banco peq. com poucos bancos
Passe para mim
Que eu monto para vc a estrutura
Ok...[/quote:b08ce3addd]
Olá Marco,
Você pode montar um exemplo ou até mesmo me mostra uma rotina que você já tenha por aí, ok?
Banco para exemplo:
TABELA CLIENTES - CODIGO CLIENTE
NOME CLIENTE
TABELA PRODUTOS - CODIGO PRODUTO
DESCRICAO DO PRODUTO
PRECO DO PRODUTO
TABELA PEDIDOS - CODIGO PEDIDO
EMISSAO PEDIDO
CLIENTE PEDIDO
TABELA ITENS - CODIGO PEDIDO
CODIGO PRODUTO
QUANTIDADE PRODUTO
Só lembrando que a minha duvida é somente com relacão a como MONTAR o aplicativo (cliente) nos dois formatos (regras de negocio no DB e/ou 3 camadas com datasnap). Sempre trabalhei com as regras no aplicativo e como as vezes o aplicativo acessa um DB REMOTO, a performance cai bastante e quero dar uma melhorada nessa questão de acesso remoto.
Outra dúvida:
No caso do aplicativo ficar em ´3 camadas´... Tentei algum tipo de problema em instala-lo em um unico computador acessando dados local e na própria máquna ou não?
Mas uma vez obrigado pela sua atenção e aguardo retorno.
Um forte abraço.
complementando:
Mas a dúvida é em cima da questão do ´mestre/detalhe´.
Espero que tenha entendido.
Então , monte o Banco peq. com poucos bancos
Passe para mim
Que eu monto para vc a estrutura
Ok...[/quote:b08ce3addd]
Olá Marco,
Você pode montar um exemplo ou até mesmo me mostra uma rotina que você já tenha por aí, ok?
Banco para exemplo:
TABELA CLIENTES - CODIGO CLIENTE
NOME CLIENTE
TABELA PRODUTOS - CODIGO PRODUTO
DESCRICAO DO PRODUTO
PRECO DO PRODUTO
TABELA PEDIDOS - CODIGO PEDIDO
EMISSAO PEDIDO
CLIENTE PEDIDO
TABELA ITENS - CODIGO PEDIDO
CODIGO PRODUTO
QUANTIDADE PRODUTO
Só lembrando que a minha duvida é somente com relacão a como MONTAR o aplicativo (cliente) nos dois formatos (regras de negocio no DB e/ou 3 camadas com datasnap). Sempre trabalhei com as regras no aplicativo e como as vezes o aplicativo acessa um DB REMOTO, a performance cai bastante e quero dar uma melhorada nessa questão de acesso remoto.
Outra dúvida:
No caso do aplicativo ficar em ´3 camadas´... Tentei algum tipo de problema em instala-lo em um unico computador acessando dados local e na própria máquna ou não?
Mas uma vez obrigado pela sua atenção e aguardo retorno.
Um forte abraço.
GOSTEI 0
Marco Salles
29/05/2009
Você pode montar um exemplo ou até mesmo me mostra uma rotina que você já tenha por aí, ok?
Ja lhe enviei umMini Exemplo
GOSTEI 0
Aprendiz_ce
29/05/2009
[quote:b6d6235cf3=´Marco Salles´]
Ja lhe enviei umMini Exemplo[/quote:b6d6235cf3]
Beleza, vou dar uma olhadinha no mesmo e dou retorno.
Muitissimo obrigado pela sua pronta atenção.
Um forte abraço.
Você pode montar um exemplo ou até mesmo me mostra uma rotina que você já tenha por aí, ok?
Ja lhe enviei umMini Exemplo[/quote:b6d6235cf3]
Beleza, vou dar uma olhadinha no mesmo e dou retorno.
Muitissimo obrigado pela sua pronta atenção.
Um forte abraço.
GOSTEI 0