Deixa todas opções do ProviderFlags dos campos que não serão como
False.
Para trabalhar com Mestre/Detalhe com DBExpress não há necessidade
de dar close/open, é só usar o esquema de ligação abaixo:
============================
Componentes Mestre
============================
SQLQueryMestre
Propriedades
- SQL = Select * From Menus
- SQLConnection = Ao seu componente SQLConnection
DataSetProviderMestre
Propriedades
- DataSet = SQLQueryMestre
- Options = [poIncFieldProps, poAllowCommandText]
- UpdateMode = upWhereKeyOnly
ClientDataSetMestre
Propriedades
- ProviderName = DataSetProviderMestre
DataSourceMestre
Propriedades
- DataSet = ClientDataSetMestre
Obs.: Inclua os campos no FieldsEditor do ClientDataSet e SQLQuery. Ainda no
FieldsEditor, identifique quais campos compõem a chave (selecione os campos
que compõem a chave e altere a Propriedade ProviderFlags para [pfInWhere,
pfInKey]), para os demais campos (selecione todos e altere a Propriedade
ProviderFlags para [pfInUpdate]).
============================
Componentes Detalhe
============================
SQLQueryDetalhe
Propriedades
- SQL = Select * From SubMenus Where Cod_Menu = :Cod_Menu
- DataSouce = DataSourceMestre (***)
- SQLConnection = Ao seu componente SQLConnection
Obs.: Informe as propriedades do Param;
DataSetProviderDetalhe
Propriedades
- DataSet = SQLQueryMestre
- Options = [poIncFieldProps, poAllowCommandText]
- UpdateMode = upWhereKeyOnly
ClientDataSetDetalhe
Propriedades
- ProviderName = DataSetProviderMestre
- MasterSource = DataSourceMestre (***)
- MasterFields = (Clique no 3 pontinhos e selecione o campo chave nas duas
tabelas e clique no botão [ Add ] e depois [ OK ]
Obs1.: Clique com o botão direito sobre o componente ClientDataSetDetalhe e
selecione a opção Fetch Params;
Obs2.: Inclua os campos no FieldsEditor do ClientDataSet e SQLQuery. Ainda
no FieldsEditor, identifique quais campos compõem a chave (selecione os
campos que compõem a chave e altere a Propriedade ProviderFlags para
[pfInWhere, pfInKey]), para os demais campos (selecione todos e altere a
Propriedade ProviderFlags para [pfInUpdate]).
-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de zafio
Enviada em: terça-feira, 30 de maio de 2006 16:03
Para: delphi-br
Assunto: Re:RES: [delphi-br] DBEXPRESS / master/detail
Ok, é assim que estou usando, mas vamos supor que eu tenha uma sqlquery
assim:
SELECT CIDADES.*,ESTADOS.DESCR FROM CIDADES,ESTADOS WHERE CIDADES.UF =
ESTADOS.CODIGO
Mesmo setando os campos dos estado como pfhidden ou não marcando com
pfiupadade não consigo gravar os dados na tabela cidade.
Outra duvida é em relação a master/detail , tenho sempre dar um close/open
na detail quando movimento a master?
> Zafio,
>
> Essa é forma de trabalhar com DBExpress. Dê uma olhadinha nas
> configurações do DataSetProvider eu acho que faltou apenas isso na sua
> configuração.
>
> Segue abaixo as conexões:
>
> ============================
> Componentes
> ============================
>
> SQLQuery
> Propriedades
> - SQL = Select * From TABELA
> - SQLConnection = Ao seu componente SQLConnection
>
> DataSetProvider
> Propriedades
> - DataSet = SQLQuery
> - Options = [poIncFieldProps, poAllowCommandText]
> - UpdateMode = upWhereKeyOnly
>
> ClientDataSet
> Propriedades
> - ProviderName = DataSetProvider
>
> DataSource
> Propriedades
> - DataSet = ClientDataSet
>
> Obs.: Inclua os campos no FieldsEditor do ClientDataSet e SQLQuery. Ainda
no
> FieldsEditor, identifique quais campos compõem a chave (selecione os
campos
> que compõem a chave e altere a Propriedade ProviderFlags para [pfInWhere,
> pfInKey]), para os demais campos (selecione todos e altere a Propriedade
> ProviderFlags para [pfInUpdate]).
>
>
> Atenciosamente,
> Douglas Uesato
>
> -----Mensagem original-----
> De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
> nome de zafio
> Enviada em: terça-feira, 30 de maio de 2006 07:45
> Para: delphi-br
> Assunto: Re:[delphi-br] DBEXPRESS / master/detail
>
> Sei que todos estão cansados, mas não consegui achar nas mensagens
> anteriores nada sobre dbexpress que me elucidase as seguintes duvidas:
> utilizo sqlquery +datasetprovider + clientdataset , ja tentei colocal
> pfhidden, marcar FALSE nos providerflags nas colunas que não desejo
> atualizar, mas quando relaciono mais de uma tabela ou ainda apenas coloco
o
> nome das colunas na query o sistema nao grava so grava seu colocar ex:
> SELECT * FROM CIDADES .
> A segunda dúvida é que quanto tenho uma tabela master e outra detalhe para
> atualizar os detalhes sempre tenho que dar um close/open para visualizar
> corretamente? , se não fica no registro anterior ou tem algo que posso
setar
> p/ ser automatico.?
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
>
>
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
[As partes desta mensagem que não continham texto foram removidas]
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Links do Yahoo! Grupos
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
<*> Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages
<*> Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
Yahoo! Grupos, um serviço oferecido por: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.