DB EXPRESS TSIMPLEDATASET

05/06/2003

0

:twisted:
BOM, EU ESTOU MIGRANDO MINHAS A APLICAÇÕES QUE ESTÃO BASEADAS NA BDE PARA O

DBEXPRESS. E A MINHA GRANDE DIFICULDADE É EM ACHAR UMA SOLUÇÃO PARA ATUALIZAR

MAIS DE UMA TABELA USANDO O TSIMPLEDATASET.
PARA FICAR MAIS CLARO PARA VOCÊ(S) QUE ESTÁ(ÃO) LENDO, EU VOU EXPOR A SEGUIR O

PROBLEMA E DESEJARIA QUE A SOLUÇÃO DADA FOSSE EXPOSTA DA MESMA MANEIRA, O MAIS

CLARA POSSÍVEL:

A APLICAÇÃO RODARÁ EM 2 DUAS CAMADAS (CLIENTE-SERVIDOR)

NUMA BASE DE DADOS DO MSSQL SERVER, EXISTEM DUAS TABELAS QUE FORMAM UMA

ESPECIALIZAÇÃO, SÃO
ELAS:

TB_FORNECEDOR
CODIGO (CHAVE PRIMÁRIA)
NOME
ENDERECO


E

TB_FORNECEDOR_FISICA
CODIGO (CHAVE PRIMÁRIA)
CPF

HÁ TAMBÉM NA BASE DE DADOS, UMA VIEW FAZENDO JOIN NAS DUAS TABELAS QUE É:

VW_FORNECEDOR_FISICA
CODIGO (CHAVE PRIMÁRIA)
NOME
ENDERECO
CPF

A IDÉIA DESTA VIEW É ABSTRAIR A IMPLEMENTAÇÃO NORMALIZADA DAS TABELAS E TRAZER

OS DADOS DO FORNECEDOR PESSOA FÍSICA COMO SE ESTIVESSEM ARMZENADOS EM UMA

TABELA SOMENTE.


PARA FINALIZAR A PARTE REFERENTE AO BANCO DE DADOS, FORAM CRIADAS 3 STORED

PROCEDURES:

SPD_FORNECEDOR_FISICA (EXCLUSÃO)
SPI_FORNECEDOR_FISICA (INCLUSÃO)
SPU_FORNECEDOR_FISICA (ALTERAÇÃO)~

ESTAS STORED PROCEDURES POSSUEM PARÂMETROS QUE SÃO OS CAMPOS PARA QUE OS

REGISTROS SEJAM INCLUÍDOS/EXCLUÍDOS/ALTERADOS NAS DUAS TABELAS, SENDO QUE NAS

SUAS IMPLEMENTAÇÕES (DAS STORED PROC) O CÓDIGO ESTÁ LIMITADO NUMA TRANSAÇÃO.

ISTO IMPEDE, POR EXEMPLO, QUE AO SE TENTAR INCLUIR UM NOVO FORNECEDOR PESSOA

FÍSICA, É FEITO PRIMEIRO UM INSERT NA TABELA TB_FORNECEDOR E DEPOIS NA

TB_FORNECEDOR_FISICA, CASO OCORRA UM ERRO NA INSERÇÃO EM TB_FORNECEDOR_FISICA,

TODA TRANSAÇÃO É DESFEITA.
A IDÉIA TAMBÉM É ABSTRAIR A COMPLEXIDADES NA HORA DE ATUALIZAR OS DADOS.

BOM, AGORA VAMOS A IMPLEMENTAÇÃO NO DELPHI QUE É O QUE INTERESSA:


ATUALMENTE, USANDO OS COMPONENTES DA BDE, EU COLOCARIA EM MEU DATAMODULE UM

COMPONENTE TQUERY COM SEGUINTE CÓDIGO SQL:

´SELECT CODIGO,NOME,ENDERECO,CPF FROM VW_FORNECEDOR_FISICA´

E LIGADO A ELE UM COMPONENTE TUPDATESQL COM AS SEGUINTES
PROPRIEDADES:

INSERTSQL: ´EXEC SPI_FORNECEDOR_FISICA :NOME,:ENDERECO,:CPF´
DELETESQL: ´EXEC SPD_FORNECEDOR_FISICA :OLD_CODIGO´
MODIFYSQL: ´EXEC SPD_FORNECEDOR_FISICA :OLD_CODIGO,:NOME,:ENDERECO,:CPF´


ESTA SOLUÇÃO FUNCIONA PERFEITAMENTE E VENHO USANDO-A HÁ UM BOM TEMPO.
COMO ESTOU MIGRANDO PARA O DBEXPRESS E ESTOU USANDO O TSIMPLEDATASET, GOSTARIA

DE RECEBER UMA RESPOSTA DETALHADA, MOSTRANDO UMA IMPLEMENTAÇÃO PARA O CASO ACIMA USANDO O TSIMPLEDATASET.


ATENCIPADAMENTE AGRADEÇO,

PEDRO SILVA NETO
neto@deso.se.gov.br


Pedro Neto

Pedro Neto

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar