renanfrutuoso Novato

Registrado: Terça-Feira, 12 de Mai de 2009 Mensagens: 11
|
Enviada: Ter Mai 12, 2009 8:36 am Assunto: Erro ao utilizar DBX 5 e Firebird 2.0 com JOIN |
|
|
Olá, estou desenvolvendo um sistema no Delphi 2009 e 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 7 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 7 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.
Renan Freire |
|