Fórum Alguem condena isso? Já deu problema com alguem? #279477

29/04/2005

0

Faço relacionamento entre tabelas usando clientdataset dessa forma:

Tabela de clientes (SELECT * FROM clientes where codigo =: tcodigo)Tabela de serviços (SELECT * FROM servicos)
em que o campo código da tabela de clientes = cds_clientesCODIGO
onde o campo código da tabela de servços = cds_servicosCOGIGO

e na abertura do formulário (on create) coloco o seguinte:
cds_clientes.open;
cds_servicos.open;
cds_servicosCODIGO.value:=cds_clientesTCODIGO.value
**Sempre funcionou normalmente
**Uso o banco firebird 1.5

Quero saber o seguinte:
A)Alguem já teve problemas fazendo relacionamento desta forma?

B)Estou agindo corretamente dessa forma uma fez que sei que posso usar intruções SQL para fazer o relacionamento entre essas tabelas?

Alguem pode me dar algum conselho?


Muito obrigado a todos.


End Else

End Else

Responder

Posts

29/04/2005

Kotho

O único problema que eu vejo é a questão da transação... Quando se faz um relacionamento utilizando o DataSource, o clientDataSet recebe os registros dentro de um campo do tipo TDataSetField, e quando se dá um ApplyUpdates na tabela, todos os campos desse tipo são incluidos na transação...

Fora isso, não vejo problema... Você pode, até, controlar a transação manualmente...


Responder

Gostei + 0

29/04/2005

Rômulo Barros

O único problema que eu vejo é a questão da transação... Quando se faz um relacionamento utilizando o DataSource, o clientDataSet recebe os registros dentro de um campo do tipo TDataSetField, e quando se dá um ApplyUpdates na tabela, todos os campos desse tipo são incluidos na transação... Fora isso, não vejo problema... Você pode, até, controlar a transação manualmente...


:arrow: [color=blue:ce5aac327a]Isso é resolvido configurando os ProviderFlafs dos Fields, configurando o UpdateMode do TDataSetProvider e Setando o nome da tabela a ser atualizada no evento OnGetTableName do TDataSetProvider.[/color:ce5aac327a]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar