Bom dia galera !!!

Estou com o seguinte problema:

Tenho as seguintes tabelas 

/* ARMAZENAR DADOS DE UMA TRANSFERENCIA */ 
CREATE TABLE TRANSF (
    CTRANSF     D_CODIGO NOT NULL,
    CEMPRESA    D_CODIGO,
    LANCAMENTO  CHAR(1) NOT NULL,
    DATA        D_DATA,
    OBS         D_BLOB_TEXTO,
    CEMP_LOJA   D_CODIGO,
    TIPO        CHAR(1),
    ENVIADO     D_SIMNAO DEFAULT 'N' NOT NULL,
    DATA_INC    D_DATA,
    DATA_ALT    D_DATA,
    LANCADO     D_SIMNAO DEFAULT 'N' NOT NULL /* PODE SER N OU S*/
);


/* ARMAZENAR OS PRODUTOS TRANSFERIDOS */
CREATE TABLE TRANSF2 (
    CTRANSF2    D_CODIGO,
    CTRANSF     D_CODIGO,
    CEMPRESA    D_CODIGO,
    LANCAMENTO  CHAR(1),
    TIPO        CHAR(1),
    CPROD       D_CODPRODUTO,
    QTD         NUMERIC(18,2) DEFAULT 0 NOT NULL,
    VENDIDO     D_SIMNAO DEFAULT 'N' NOT NULL,
    ENVIADO     D_SIMNAO DEFAULT 'N' NOT NULL
);


/* RELAÇÃO DE PRODUTOS POR LOJA TRANSFERIDO */
CREATE TABLE TRANSF_REC (
    CEMPRESA    D_CODIGO,
    LANCAMENTO  CHAR(1) NOT NULL,
    CEMP_LOJA   D_CODIGO,
    TIPO        CHAR(1) NOT NULL,
    CPRODUTO    D_CODPRODUTO,
    QTD         NUMERIC(18,3) DEFAULT 0 NOT NULL
);

PRECISO FAZER O SEGUINTE:
QDO MUDAR O VALOR DO CAMPO LANCADO DE N PARA S TENHO Q VERIFICAR SE O PRODUTO 
EXISTE NA TABELA 
DE TRANSF_REC. SE NÃO EXISITIR TENHO Q CADASTRAR CASO CONTRÁRIO TENHO Q 
AUMENTAR A QTD. DOO
PRODUTOS...

A TRIGGER Q TENHO É ESSA, SÓ Q ESTÁ DANDO ERRO E NÃO CONSIGO FAZER UM LOOP DO 
INICIO AO FIMA
DA TABELA DE TRANSF2

as
begin
  IF (UPDATING) THEN
  BEGIN
     IF ((OLD.LANCADO = 'N') AND (NEW.LANCADO = 'S')) THEN
     BEGIN
          for select CPROD, QTD from TRANSF2 where TRANSF2.CTRANSF = CTRANSF
          order by CPROD
          do
          BEGIN
            UPDATE TRANSF_REC SET QTD = (QTD + TRANSF2.QTD)
            WHERE  TRANSF_REC.CEMPRESA = CEMPRESA
            AND    TRANSF_REC.LANCAMENTO = LANCAMENTO
            AND    TRANSF_REC.CEMP_LOJA = CEMP_LOJA
            AND    TRANSF_REC.TIPO = TIPO
            AND    TRANSF_REC.CPRODUTO = CPRODUTO;
          END
     END
  END
end


SERA Q ALGUEM PODERIA ME AJUDAR??
DESDE JÁ AGRADEÇO...



Obrigado.

Rodrigo Pedroso
Winsoft Informática - (14) 3664-1586
[EMAIL PROTECTED]

[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< 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]
 
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