PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum IBDataSet Master-Detail Urgente!!!! #169436

15/07/2003

0

Ola Pessoal... Eu estou com um problema, já verifiquei em todos os lugares e até no histórico do nosso grupo. Mas não consegui resolver o meu problema. É o seguinte:
Eu estou utilizando o IBDataSet para manipular a minha base de dados e estou utilizando Master-Detail como já me informaram.
( Na hora do select da tabela detalhe o select fica da seguinte forma ´select * from ENDE where CODCFPV = :CODCFPV´ e altero o DataSource para a tabela master que no select está da seguinte forma ´Select * from CADCFPV´ as tabelas estão criadas desta forma:

Tabela Master ---------------
CREATE TABLE CADCFPV (
CODCFPV INTEGER NOT NULL PRIMARY KEY,
CODEMP INTEGER,
TCAD CHAR(1),
RZS VARCHAR(50),
FTSIA VARCHAR(50),
CNPJCPF VARCHAR(20),
IERG VARCHAR(20),
IM VARCHAR(20),
OBS BLOB SUB_TYPE 0 SEGMENT SIZE 80);

Tabela Detail----------------------
CREATE TABLE ENDE (
CODENDE INTEGER NOT NULL PRIMARY KEY,
CODCFPV INTEGER,
CODTIPOENDE INTEGER,
SN_PREF BOOLEAN,
RUA VARCHAR(60),
BRR VARCHAR(60),
CDD VARCHAR(60),
PAIS VARCHAR(20));
---------------------------------------------
Com os relacionamentos devidamente ageitados.
ALTER TABLE ENDE ADD CONSTRAINT FK_ENDERECO FOREIGN KEY (CODCFPV) REFERENCES CADCFPV (CODCFPV) ON DELETE CASCADE ON UPDATE CASCADE;
---------------------------------------------
O banco de dados está tudo OK.
No delphi eu ativo as duas tabelas usando Master-Detail e dou um comando insert nas duas IBDataSet mas quando eu vou salvar a primeira tabela e dar um commit o delphi automaticamente salva a segunda tabela e da pau na chave estrangeira ´violation FOREIGN KEY constraint ´FK_ENDERECO´ on table ´ENDE´, eu entendi o erro o delphi era para salvar a primeira tabela e dar um commit e depois a segunda.

Alguem sabe como solucionar esse problema que está fundindo a minha cabeça.
Desde já muito obrigado galera!!!

Anderson Cristian da Silva
Programador - Administrador de Rede e Banco de Dados


Andercrist

Andercrist

Responder

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

Aceitar