Violation of Foreign Key

Delphi

09/12/2006

Estou com o seguinte erro
Só que eu não sei onde eu errei...

É uma tela de cadastro de orçamentos, tem o cabeçalho e os itens. É nos itens, qndo eu vou incluir um novo que me dá o erro...
O código pra incluir o item é o seguinte:
procedure TFCadOrcamento.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key=VK_RETURN) and ((DBGrid1.SelectedIndex=0) or
     (DBGrid1.SelectedIndex=1) or (DBGrid1.SelectedIndex=2))
     and (DBGrid1.ReadOnly=false) then
  begin
    FPesqProd := TFPesqProd.Create(Self);
    FPesqProd.ShowModal;
    FPesqProd.Free;
    FPesqProd := nil;

    DMControle.cdsCadOrcamento2.Insert;
    DMControle.cdsCadOrcamento2CODORCAMENTO.AsString := DMControle.cdsCadOrcamentoCODIGO.AsString;
    DMControle.cdsCadOrcamento2CODRPDUTO.AsString    := dmPesquisas.cdsPesqProdutoCODIGO.AsString;
    DMControle.cdsCadOrcamento2REFPROD.AsString      := dmPesquisas.cdsPesqProdutoREFERENCIA.AsString;
    DMControle.cdsCadOrcamento2CODBARRA.AsString     := dmPesquisas.cdsPesqProdutoCODBARRA.AsString;
    DMControle.cdsCadOrcamento2PRECOVENDA.AsFloat    := dmPesquisas.cdsPesqProdutoPRECOVENDA.AsFloat;
    DMControle.cdsCadOrcamento2MERCADORIA.AsString   := dmPesquisas.cdsPesqProdutoDESCRICAO.AsString;
  end;
end;

Estou usando o D7, Firebird 1.5, ClientDataSet


Facc

Facc

Curtidas 0

Respostas

Rm

Rm

09/12/2006

Não sei se ajuda...Nem sei se o erro era este....Mais vai lá:Quando comecei trabalhar com FK dava erro pois tinha feito uma burrada como segue

Master
codmaster integer autoincremental
campo1 etc

Detail
CodMaster String<<< Aqui estava meu erro.Corrigi para integer e OK
CodDetail Integer autoincremental
Campo detail etc

Espero ser de alguma utilidade


GOSTEI 0
Rm

Rm

09/12/2006

Não sei se ajuda...Nem sei se o erro era este....Mais vai lá:Quando comecei trabalhar com FK dava erro pois tinha feito uma burrada como segue

Master
codmaster integer autoincremental
campo1 etc

Detail
CodMaster String<<< Aqui estava meu erro.Corrigi para integer e OK
CodDetail Integer autoincremental
Campo detail etc

Espero ser de alguma utilidade


GOSTEI 0
Facc

Facc

09/12/2006

Não sei se ajuda...Nem sei se o erro era este....Mais vai lá:Quando comecei trabalhar com FK dava erro pois tinha feito uma burrada como segue Master codmaster integer autoincremental campo1 etc Detail CodMaster String<<< Aqui estava meu erro.Corrigi para integer e OK CodDetail Integer autoincremental Campo detail etc Espero ser de alguma utilidade



Não pode ser String???


GOSTEI 0
Rm

Rm

09/12/2006

Não tenho esta informação...mas quando mudei para integer e digitei NOVAS entradas na tabela não tive mais problemas


GOSTEI 0
Facc

Facc

09/12/2006

Não tenho esta informação...mas quando mudei para integer e digitei NOVAS entradas na tabela não tive mais problemas


Vou testar... depois posto o resultado...

Valeu


GOSTEI 0
Facc

Facc

09/12/2006

Continua dando o erro...


GOSTEI 0
Salupe

Salupe

09/12/2006

Se vc puder alterar o banco de dados ainda, a melhor forma seria acrescentar um campo chamado item e faze-lo ser sequencial dentro de cada orçamento, o problema é que vc deve estar querendo colocar dois produtos com o mesmo codigo dentro do mesmo orçamento por isso dá esse erro de violação.

Pelo menos pra mim seria a melhor forma.


GOSTEI 0
Facc

Facc

09/12/2006

Se vc puder alterar o banco de dados ainda, a melhor forma seria acrescentar um campo chamado item e faze-lo ser sequencial dentro de cada orçamento, o problema é que vc deve estar querendo colocar dois produtos com o mesmo codigo dentro do mesmo orçamento por isso dá esse erro de violação. Pelo menos pra mim seria a melhor forma.


Os Produtos são diferentes...

Vou mudar para os componentes IBX


GOSTEI 0
POSTAR