Fórum Problema para salvar dados em mais de uma tabela utilizando JOIN #409336

11/11/2011

0

Olá a todos!

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

Francisco Santos

Responder

Posts

12/11/2011

Teí Sistemas

Bom dia,

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.
Responder

Gostei + 0

12/11/2011

Wanderson Cardoso

Olá,


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
Responder

Gostei + 0

16/11/2011

Wilson Junior

O DBXpress assume a tabela que deve ser atualizada a primeira tabela após a palavra reservada FROM.

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.
Responder

Gostei + 0

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

Aceitar