Francisco Thiago wrote:

> Caros amigos,
> 
> Tenho uma procedure que recebe um TClientDataSet como parâmetro e de acordo
> com as modificações nele, ela gera um SQL (Insert/Update/Delete). Uso isso
> quando um simples ApplyUpdates não basta para salvar os dados.
> 
> Só que tenho um problema: Este DataSet não esta com a chave primária
> informada ainda (pq esta valor é gerado no servidor de aplicações), e eu
> precisava, de alguma forma, atribuir o valor da chave.
> Tudo bem, eu poderia dar um Edit, gravar o valor e dar um Post. Correto?
> Não.
> 
> O CDS guarda as modificações feitas no registro em cache... Então ele
> guardaria o seguinte:
> 
> Inserção do Registro 'A'
> Edicao do Registro 'A'
> 
> E o meu SQL viria desta forma também... Só que quando eu executar este SQL,
> ele PODERÁ dar um erro de chave primária no insert, apesar do Edit.
> 
> Então eu pergunto a vocês: O que eu poderia fazer para modifica um registro,
> sem alterar o seu estado (Editado/Inserido/Deletado)????

Olá Thiago,

Qual seu banco de dados? Você poderia gerar a chave através do banco (em 
Firebird seria trigger+generator) ao menos para quebrar um galho 
enquanto você não tem uma solução definitiva.

Infelizmente eu conheço bulhufas de ClientDataSet pra te dizer que dá 
(ou não dá) pra ser feito.

Alguma chance de gerar a chave através do cliente?

--
João Morais


-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a