Comparar Tabelas (Firebird)

Delphi

13/02/2007

bom dia...

tenho duas tabelas onde elas tem basicamente os mesmos dados, gostaria de saber como faço pra comparar elas, ou seja verificar na tabela ´original´ se foi incluso algum registro, se sim, grava na cópia. Estava fazendo por [b:f52c11bc7d]While not fimtabela do[/b:f52c11bc7d] mas isso ocasiona demora na abertura da tela... existe algum modo de fazer isso automático?

D7, BDE, Firebird


Facc

Facc

Curtidas 0

Respostas

Facc

Facc

13/02/2007

Esqueci... estou passando as estruturas das tabelas

Tabela Cópia
CREATE TABLE TMPPRODUTO (
    CODPROD     CHAR(7) NOT NULL,
    IMPRIMIR    CHAR(1),
    PRODUTO     VARCHAR(60),
    COD_PEDIDO  CHAR(10),
    QTDE        NUMERIC(15,2)
);


Tabela Original
CREATE TABLE CADPRODUTO (
    REF_PROD                VARCHAR(7) NOT NULL,
    DESCR_PROD              VARCHAR(60),
    UNID_PROD               VARCHAR(2),
    OBS_PROD                BLOB SUB_TYPE 1 SEGMENT SIZE 80,
    ATIVO_PROD              VARCHAR(1),
    CLASSFISCAL             VARCHAR(10),
    COMPRADO_PROD           VARCHAR(1),
    CADASTRO_PROD           DATE,
    FOTO_PROD               BLOB SUB_TYPE 0 SEGMENT SIZE 80,
    FOTO2_PROD              BLOB SUB_TYPE 0 SEGMENT SIZE 80,
    TIPOFOTO2               VARCHAR(1),
    IMPRIME_PROD            VARCHAR(1),
    CODSTATUS_PROD          VARCHAR(2),
    COLECAO_PROD            VARCHAR(3),
    CUSTOFIXO_PROD          DOUBLE PRECISION,
    TOTALSERV_PROD          DOUBLE PRECISION,
    TOTALCMED_PROD          DOUBLE PRECISION,
    TOTALKIT_PROD           DOUBLE PRECISION,
    CODGRUPO_PROD           VARCHAR(3),
    CUSTO_PROD              DOUBLE PRECISION,
    MGLUCRO_PROD            DOUBLE PRECISION,
    PRVENDA_PROD            DOUBLE PRECISION,
    PESOLIQ_PROD            DOUBLE PRECISION,
    VALOR_TAB               DOUBLE PRECISION,
    VALOR_TAB1              DOUBLE PRECISION,
    VALOR_TAB2              DOUBLE PRECISION,
    VALOR_TAB3              DOUBLE PRECISION,
    VALOR_TAB4              DOUBLE PRECISION,
    VALOR_TAB5              DOUBLE PRECISION,
    VALOR_TAB6              DOUBLE PRECISION,
    VALOR_TAB7              DOUBLE PRECISION,
    VALOR_TAB8              DOUBLE PRECISION,
    VALOR_TAB9              DOUBLE PRECISION,
    VALOR_TAB10             DOUBLE PRECISION,
    VALOR_TAB11             DOUBLE PRECISION,
    VALOR_TAB12             DOUBLE PRECISION,
    VALOR_TAB13             DOUBLE PRECISION,
    VALOR_TAB14             DOUBLE PRECISION,
    VALOR_TAB15             DOUBLE PRECISION,
    TOTAL                   DOUBLE PRECISION,
    FORNECEDOR              VARCHAR(5),
    PRODUZIDO               VARCHAR(1),
    KIT                     VARCHAR(1),
    TIPO_FOTO               VARCHAR(1),
    FATORSUG                DOUBLE PRECISION,
    CUSTOSUG                DOUBLE PRECISION,
    CONGELACUSTO            VARCHAR(1),
    CONGELACUSTO2           VARCHAR(1),
    CODCOMPOSICAO           VARCHAR(3),
    COD_TAM                 VARCHAR(3),
    COR_TAB                 VARCHAR(100),
    DESCR_2QUALIDADE        VARCHAR(30),
    TRABTAMPADRAO           VARCHAR(1),
    QUITAR                  VARCHAR(1),
    CODTECIDOPRINCIPAL      VARCHAR(5),
    TOTCUSTOCORTAMANHO      DOUBLE PRECISION,
    TOTCUSTOCORQTDEMEDIA    DOUBLE PRECISION,
    TOTCUSTOCORESQTDEMEDIA  DOUBLE PRECISION,
    TIPOCUSTO               VARCHAR(1),
    ESTOQUEMINIMO           DOUBLE PRECISION,
    PRECOCOMPRA             DOUBLE PRECISION,
    EXPCOMERCIO             VARCHAR(1),
    CODFORNECEDOR           VARCHAR(15),
    COMISSAO                DOUBLE PRECISION,
    CODFORNECEDOR2          VARCHAR(15),
    CODFAMILIA_PROD         VARCHAR(2),
    SUBPRODUTO              CHAR(1) DEFAULT ´N´,
    POSVENDA                CHAR(1),
    TIPOGAR                 CHAR(1),
    TIPOCONTATO             CHAR(1),
    TEMPOGAR                INTEGER,
    TEMPOCONTATO            INTEGER,
    VLRICMS                 NUMERIC(15,2),
    PERCREDUCAOICMS         NUMERIC(15,2),
    QTDEVOLUME              NUMERIC(15,2),
    EXPORTAR                CHAR(1),
    PORCDFC                 DOUBLE PRECISION,
    SEXO                    CHAR(1) DEFAULT ´U´,
    FOTO3_PROD              BLOB SUB_TYPE 0 SEGMENT SIZE 80,
    TIPOFOTO3               CHAR(1),
    FATURAR                 DOUBLE PRECISION
);



GOSTEI 0
Facc

Facc

13/02/2007

alguem?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

13/02/2007

tente fazer numa instrução sql simples:
insert into
  TMPPRODUTO (CODPROD, IMPRIMIR, PRODUTO, COD_PEDIDO, QTDE)
select
  REF_PROD, IMPRIME_PROD, DESCR_PROD, ´0000000000´, 0
from
  CADPRODUTO
where
  not REF_PROD in
    (select
       CODPROD
     from
       TMPPRODUTO)

publique a correlação entre os campos.
no caso acima, como eu não sei de onde vem os valores para os campos COD_PEDIDO e QTDE, coloquei 0 (zero)


GOSTEI 0
POSTAR