Fórum Problema para salvar dados em mais de uma tabela utilizando JOIN #409336
11/11/2011
0
Não estou conseguindo salvar no Firebird, Utilizando Delphi 2010 e DBExpress, utilizando JOIN de três tabelas.
Meu SQL está assim:
SELECT A.*, E.*, S.* FROM ALUNO A
LEFT OUTER JOIN ENDERECO E ON A.CODIGOENDERECO = E.CODIGO
LEFT OUTER JOIN SERIE S ON S.CODIGOALUNO=A.CODIGO
ORDER BY A.NOME
Alguém podria me ajudar?
Francisco Santos
Curtir tópico
+ 0Posts
12/11/2011
Teí Sistemas
Como vc está usando três tabelas, o DbExpress não sabe em qual tabela ele irá salvar. Para ele saber, vc deve definir, no evento OnGetTablename do DataSetProvider correspondente a este SQLDataSet. Abaixo um exemplo:
procedure TForm1.DataSetProvider1GetTableName(Sender: TObject; DataSet: TDataSet; var TableName: WideString); begin TableName := NOME_DA_TABELA; end;
Espero ter ajudado.
Gostei + 0
12/11/2011
Wanderson Cardoso
O que você precisa fazer é configurar o teu SQLDataSet e o ClientDataSet.
Ex.: Após adicionar os Fields no SQLDataSet set para false a propriedade pfInUpdate e pfInWhere dos campos vindos das tabelas ENDERECO e SERIE, no DataSetProvider set para True a propriedade poIncFieldProps, agora carregue para o ClientDataSet os campos.
Skype: tennos.wanderson
Gostei + 0
16/11/2011
Wilson Junior
Para os campos que não pertencem a tabela a ser atualizada (chamados campos virtuais), deve ser colocado os ProviderFlags de cada Field tudo como False.
Espero ter colaborado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)