ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Erro ao utilizar DBX 5 e Firebird 2.1 com JOIN

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
H4ck3r
Novato
Novato


Registrado: Quarta-Feira, 27 de Abril de 2005
Mensagens: 10

MensagemEnviada: Ter Abr 14, 2009 4:39 pm    Assunto: Erro ao utilizar DBX 5 e Firebird 2.1 com JOIN Responder com Citação

Olá, estou desenvolvendo um sistema no Delphi 2007 e ao migrar para o Delphi 2009 esbarrei com o seguinte problema:

Ao criar um select contendo um JOIN, ao acrescentar um registro no ClientDataSet e utilizar o método ApllyUpdates(0), gera uma excessão dizendo que os campos que não pertencem a tabela principal não existem, porém eu já passei todas as opções do ProviderFlags desses campos para false (tanto no ClientDataSet quanto no SQLQuery). No Delphi 2007 isso funcionava, mas no Delphi 2009 não está funcionando.

SQL de exemplo:

Select CLI.CODIGO, CLI.NOME, CID.NOME "Cidade"
From CLIENTES CLI left join CIDADES CID on CID.CODIGO=CLI.CODCIDADE

Altero no campo CIDADE (no ClientDataSet e SQLQuery):
ProviderFlags.pfinUpdate:=false;
ProviderFlags.pfinWhere:=false;
ProviderFlags.pfinKey:=false;

Altero no campo CODIGO (no ClientDataSet e SQLQuery):
ProviderFlags.pfinKey:=true;

DataSetProvider.Options.poPropogateChanges:=true;
DataSetProvider.UpdateMode:=upWhereKeyOnly;

No Delphi 2007 apenas isso bastava, mas no Delphi 2009 o DataSetProvider está ignorando o ProviderFlags e está incluindo o campo CIDADE no SQL do ApplyUpdates.

Se alguém puder ajudar eu agradeço.

Hélio França
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
H4ck3r
Novato
Novato


Registrado: Quarta-Feira, 27 de Abril de 2005
Mensagens: 10

MensagemEnviada: Qua Abr 15, 2009 3:04 pm    Assunto: Resolvido Responder com Citação

O Delphi 2009 tem um pequeno bug por conta do unicode e não passa determinadas informações para o midas.dll, inclusive o ProviderFlags. Na revista Active Delphi do mês de Março de 2009, Kelver Melotti explica como corrigir esse bug, como a revista ainda está à venda, não sei se posso postar a solução proposta pela revista aqui.
_________________
<br><br>
<h5>Força Sempre</h5>
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Qua Abr 15, 2009 4:47 pm    Assunto: Responder com Citação

claro que pode!

esse unicode ta dando mais dor de cabeca do q ajudando no D2009...
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
bruno486
Novato
Novato


Registrado: Segunda-Feira, 3 de Agosto de 2009
Mensagens: 3
Localização: Três Rios RJ

MensagemEnviada: Qui Ago 06, 2009 1:53 pm    Assunto: Responder com Citação

Faça o update 1 para o delphi.
ftp://ftpd.codegear.com/download/Delphi_C++Builder2009/Delphi_CBuilder2009Update1.exe

**********************************************
RESOLVIDO
*********************************************
_________________
Att.
Bruno Schoralick Pinto
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB