Ol� amigos da lista!!!
Estou apanhando de novo com o SQL Server.
Estou implementando uma encomenda de pedidos no meu sistema em java. Funciona legal quando testado no sybase.
Mas no SQL eu estou obtendo a seguinte mensagem:
 
INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'FK_NumeroPed'. The conflict occurred in database 'Malthus', table 'Pedido', column 'Numero'.
 
Eu n�o consigo imaginar qual possa ser o erro...
Se eu tento inserir os dados no banco no bra�o, ele aceita... ent�o acredito que n�o deva ser erro na hora de definir a constraint...
Algu�m j� se deparou com essa msg e poderia me dar uma luz?
Estou enviando abaixo as descri��es das 2 tabelas em que estou inserindo os dados (Pedido e DetPedido), juntamente com as stored procedures e o bloco de programa��o Java que as est� executando.
Agrade�o desde j� qualquer ajuda!!!
Abra�os e desculpe o inc�modo
Ana L�cia
[EMAIL PROTECTED]
 
 
 
CREATE TABLE Pedido
(
 Numero   int  NOT NULL,
 CodigoFP  int  NOT NULL
 CONSTRAINT FK_FormaPagamento FOREIGN KEY
  REFERENCES FormaPgto(Codigo)
  ON DELETE NO ACTION
  ON UPDATE CASCADE, 
 CodigoPe  int   NOT NULL
 CONSTRAINT FK_CodigoPedido FOREIGN KEY
  REFERENCES Fornecedor(CodigoPe)
  ON DELETE NO ACTION
  ON UPDATE CASCADE,
 DtEmissao  datetime,
 DtEntrega  datetime,
 DtPrevista  datetime,
 Status  char  NOT NULL
 CONSTRAINT PK_Pedido PRIMARY KEY CLUSTERED (Numero)
)
 
 
 
CREATE TABLE DetPedido
(
 NumeroPed  int  NOT NULL
  CONSTRAINT FK_NumeroPed FOREIGN KEY
  REFERENCES Pedido(Numero)
  ON DELETE NO ACTION
  ON UPDATE CASCADE,
 
 NumeroProd  int  NOT NULL
 CONSTRAINT FK_NumeroProd FOREIGN KEY
  REFERENCES Produto(Codigo)
  ON DELETE NO ACTION
  ON UPDATE CASCADE,
 QtdPedida  int  NOT NULL,
 Status  char  NOT NULL,
 VlrUnitario  float  NOT NULL,
 VlrTotal  float
 CONSTRAINT PK_DetPedido PRIMARY KEY CLUSTERED (NumeroPed, NumeroProd)
)
 
 
 
 
 
CREATE PROCEDURE InsertPedido
 @Numero int,
 @CodigoFP int,
 @CodigoPe int,
 @DtEmissao datetime,
 @DtEntrega datetime,
 @DtPrevista datetime,
 @Status char(1)
 
AS
BEGIN TRANSACTION
insert into Pedido values(@Numero, @CodigoFP, @CodigoPe, @DtEmissao, @DtEntrega, @DtPrevista, @Status)
COMMIT TRANSACTION
GO
 
 
 

CREATE PROCEDURE InsertDetPedido
 @NumeroPed int,
 @NumeroProd int,
 @QtdPedida int,
 @Status char(1),
 @VlrUnitario float,
 @VlrTotal float
AS
BEGIN TRANSACTION
insert into DetPedido values(@NumeroPed, @NumeroProd, @QtdPedida, @Status, @VlrUnitario, @VlrTotal)
COMMIT TRANSACTION
GO
 
 
 
 
 

 void confirmar_ActionPerformed(java.awt.event.ActionEvent event)
 {
     Pedido ped = new Pedido();
     int num = Integer.parseInt(t_codigo.getText());
     java.sql.Date dthj = DataHora.Cocatenar_Data(t_dthj.getText());
     java.sql.Date dtprev = DataHora.Cocatenar_Data(t_dtprevista.getText());
     int forn = Integer.parseInt(""+(Integer) hforn.get(l_fornecedor.getText()));
     int forma = Integer.parseInt(""+(Integer) h3.get(l_forma.getText()));
     ped.spPrepareCall("InsertPedido","?,?,?,?,?,?,?");
     int ok =ped.Insert( num,forma,forn, dthj,dtprev, dtprev,"0");
     if(ok==0){
         DetPedido det = new DetPedido();
         det.spPrepareCall("InsertDetPedido","?,?,?,?,?,?");
         for(int i=0;i<=(l_item.getNumberOfRows()-1);i++){
            
         
             //item
             float valor =Float.valueOf(l_item.getCellText(i,2)).floatValue();
             float valort =Float.valueOf(l_item.getCellText(i,3)).floatValue();
             int prod = Integer.parseInt(""+(Integer) h1.get(l_item.getCellText(i,0)));
                int quant = Integer.parseInt(l_item.getCellText(i,1));
                //
              
           
           
             int ok2 = det.Insert(num,prod, quant,"0", valor,  valort);
            
            
         }
         (new Atencao(this, "Encomenda Realizada!", false)).setVisible(true);
         Clear_TextFields();
         confirmacao = true;
     }
        
    
 }
 
 

Responder a