Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
H4ck3r Novato

Registrado: Quarta-Feira, 27 de Abril de 2005 Mensagens: 10
|
Enviada: Ter Abr 14, 2009 4:39 pm Assunto: Erro ao utilizar DBX 5 e Firebird 2.1 com JOIN |
|
|
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 |
|
 |
H4ck3r Novato

Registrado: Quarta-Feira, 27 de Abril de 2005 Mensagens: 10
|
Enviada: Qua Abr 15, 2009 3:04 pm Assunto: Resolvido |
|
|
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 |
|
 |
DonOctavioDelFlores Colaborador

Registrado: Quarta-Feira, 12 de Setembro de 2007 Mensagens: 2630 Localização: Pra lá de Bagda
|
Enviada: Qua Abr 15, 2009 4:47 pm Assunto: |
|
|
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 |
|
 |
bruno486 Novato

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