Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Cadastrando com o ibdataset


nicolasbraz

Pergunta

O problema é o seguinte o codigo 1 é o codigo pai então todos os produtos que eu cadastrar tem que pegar o codigo 1 e acrescentar

segue abaixo 2 imagens uma cadastrando outra com o erro.

http://img12.imageshack.us/img12/7258/cadastrando.jpg

http://img44.imageshack.us/img44/7721/cadastroerro.jpg

Editado por nicolasbraz
Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0
Erro de validação para a coluna SAIPORD_COD_SAIDA_PAI ... valor nulo

este erro indica que nesta coluna não pode haver um valor nulo

abraço

Jhonas eu sei que ela ta nula isso que eu to tentando explicar, era pra ele pegar o valor automatico do saipai_codigo.

Com o ibtable eu usava a propriedade masterfield.

Link para o comentário
Compartilhar em outros sites

  • 0
Jhonas eu sei que ela ta nula isso que eu to tentando explicar, era pra ele pegar o valor automatico do saipai_codigo.

Com o ibtable eu usava a propriedade masterfield.

Se voce estiver usando IBQuery tambem dá .... no instante em que editar o registro passe o valor para este campo

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Se voce estiver usando IBQuery tambem dá .... no instante em que editar o registro passe o valor para este campo

abraço

Obrigado jhonas com sua ideia consegui resolver meu problema

no botao salvar coloquei.

dmdados.SaidaProdutoSAIPROD_COD_SAIDA_PAI.Value:=
         dmdados.TblSaidaPaiSAIPAI_CODIGO.Value;
         dmdados.SaidaProduto.Post;

Funcionou perfeitamente obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

O ibdataset está assim.

Select SQL

select * from SAIDA_PRODUTO,SAIDA_PAI

where SAIPROD_COD_SAIDA_PAI =:SAIPAI_CODIGO and

SAIPROD_COD_SAIDA_PAI = SAIPAI_CODIGO

order by SAIPROD_DATA ASC
Datasource = Saidapai. Na hora do Dataset editor não sei o que fazer porque nessa tabela existem 3 chaves primarias. e se eu selecionar so as 3 ele da erro SQL na linha do SAIPAI_CODIGO, no Refresh.
Select 
  CUS_CODFUNC,
  CUS_COD_SAIDA_PAI,
  CUS_COD_OBRA,
  CUS_FUNCAOFUNC,
  CUS_DATA,
  CUS_DIAS,
  CUS_QUANTIDADE,
  CUS_PRECO,
  CUS_VALORTOTAL,
  SAIPAI_CODIGO,
  SAIPAI_NOMECLI,
  SAIPAI_NOMEOBRA,
  SAIPAI_DATAVENDA,
  SAIPAI_VALORTOTAL,
  SAIPAI_OBS,
  SAIPAI_VALORMATERIAL,
  SAIPAI_VALORFUNCIONARIO,
  SAIPAI_VALORADICIONAL
from CUSTOFUNCIONARIO 
where
  CUS_COD_OBRA = :CUS_COD_OBRA and
  CUS_COD_SAIDA_PAI = :CUS_COD_SAIDA_PAI and
  CUS_CODFUNC = :CUS_CODFUNC

Link para o comentário
Compartilhar em outros sites

  • 0
Ambos fazem suas funções mas quando se fecha o ibdataset e abre novamente acontece tipo um "Roll Back" porque isso acontece ?
Um Roll Back acontece quando não foi possivel salvar as alterações no banco de dados

Na hora do Dataset editor não sei o que fazer porque nessa tabela existem 3 chaves primarias.

Porque voce esta usando 3 chaves primarias ?

Link para o comentário
Compartilhar em outros sites

  • 0
Porque voce esta usando 3 chaves primarias ?

O banco antigamente tinha 2 chaves primarias funcionava da seguinte maneira a 1º chave primaria copiava o código da saida pai e a outra chave seria o codigo do produto até ai estava perfeito, mas meu cliente queria poder vender N vezes o mesmo produto na mesma venda então criei o 3º campo com auto incremento que ia do 0 pra cima assim ele poderia vender N produtos na mesma venda, só que já existiam dados cadastrados na tabela e eu queria tirar a chave primaria de 2 campos existe a possibilidade de fazer isso, sem alterar os dados ?

Link para o comentário
Compartilhar em outros sites

  • 0
O banco antigamente tinha 2 chaves primarias funcionava da seguinte maneira a 1º chave primaria copiava o código da saida pai e a outra chave seria o codigo do produto até ai estava perfeito, mas meu cliente queria poder vender N vezes o mesmo produto na mesma venda então criei o 3º campo com auto incremento que ia do 0 pra cima assim ele poderia vender N produtos na mesma venda, só que já existiam dados cadastrados na tabela e eu queria tirar a chave primaria de 2 campos existe a possibilidade de fazer isso, sem alterar os dados ?

Sim, mas voce teria que usar um gerenciador de tabelas para isso ( tipo quickDesk usado para o interbase) atraves dele é possivel alterar as chaves, sem perder os dados

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Sim, mas voce teria que usar um gerenciador de tabelas para isso ( tipo quickDesk usado para o interbase) atraves dele é possivel alterar as chaves, sem perder os dados

abraço

baixei o software registrei meu banco de dados.

http://img30.imageshack.us/img30/466/erroscz.jpg

Quando tiro a chave ele da esse erro.

Link para o comentário
Compartilhar em outros sites

  • 0
Modificação de Relacionamento de Campos falhou

Ação cancelada pelo Trigger (1) para preservar a integridade dos dados

Para não dar esse erro voce tem que deletar ( dropping ) os triggers e generators tambem, para então poder recriar as chaves

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Foram deletados as triggres e as generators ligadas a tabela mas o erro continua.

Depois de deletar tente fechar o programa e abri-lo novamente .... verifique tambem se não ficou nenhuma pendencia de constraint

em ultimo caso faça uma copia da tabela sem as chaves e depois tente novamente

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas todas as tabelas estão OK !

Só a de Horasextras que está me da dando dores de cabeça.

CREATE TABLE HORASEXTRAS (
    HORA_CODFUNC        INTEGER NOT NULL,
    HORA_COD_SAIDA_PAI  INTEGER NOT NULL,
    HORA_COD_OBRA       INTEGER NOT NULL,
    HORA_FUNCAOFUNC     VARCHAR(40) CHARACTER SET NONE,
    HORA_DATA           DATE,
    HORA_TIPOADICIONAL  NUMERIC(6,2),
    HORA_CUSTODIARIO    NUMERIC(6,2),
    HORA_QUANTIDADE     NUMERIC(4,2),
    HORA_TOTAL          NUMERIC(6,2),
    HORA_AJUDA          NUMERIC(3,2),
    HORA_AJUDA2         NUMERIC(4,2)
);

 Primary Keys                                */
/******************************************************************************/

ALTER TABLE HORASEXTRAS ADD CONSTRAINT PK_HORASEXTRAS PRIMARY KEY (HORA_COD_OBRA, HORA_CODFUNC);
Codigo SQL.
select * from HORASEXTRAS , SAIDA_PAI 

where HORA_COD_SAIDA_PAI =:SAIPAI_CODIGO and 

SAIPAI_CODIGO = HORA_COD_SAIDA_PAI

order by HORA_DATA ASC
Ele inseri, ele atualiza só que quando vai deletar ele diz que o "Cannot perform this operation on an empty dataset " Delete SQL.
delete from HORASEXTRAS
where
  HORA_COD_OBRA = :OLD_HORA_COD_OBRA and
  HORA_CODFUNC = :OLD_HORA_CODFUNC

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...