nicolasbraz Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 (editado) 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 Agosto 20, 2009 por nicolasbraz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 Erro de validação para a coluna SAIPORD_COD_SAIDA_PAI ... valor nuloeste erro indica que nesta coluna não pode haver um valor nulo abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 Erro de validação para a coluna SAIPORD_COD_SAIDA_PAI ... valor nuloeste erro indica que nesta coluna não pode haver um valor nulo abraçoJhonas 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 7, 2009 Denunciar Share Postado Agosto 7, 2009 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 campoabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Agosto 7, 2009 Autor Denunciar Share Postado Agosto 7, 2009 Se voce estiver usando IBQuery tambem dá .... no instante em que editar o registro passe o valor para este campoabraçoObrigado 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Agosto 20, 2009 Autor Denunciar Share Postado Agosto 20, 2009 Jhonas não sei porque qual motivo mas meu Ibdataset parou de incluir registros. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Agosto 20, 2009 Autor Denunciar Share Postado Agosto 20, 2009 (editado) Inserir ele esta inserindo normalmente, o problema é na hora da edição e exclusão.Ambos fazem suas funções mas quando se fecha o ibdataset e abre novamente acontece tipo um "Roll Back" porque isso acontece ? Editado Agosto 20, 2009 por nicolasbraz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Agosto 20, 2009 Autor Denunciar Share Postado Agosto 20, 2009 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 20, 2009 Denunciar Share Postado Agosto 20, 2009 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 dadosNa hora do Dataset editor não sei o que fazer porque nessa tabela existem 3 chaves primarias.Porque voce esta usando 3 chaves primarias ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Agosto 21, 2009 Autor Denunciar Share Postado Agosto 21, 2009 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 ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 21, 2009 Denunciar Share Postado Agosto 21, 2009 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 dadosabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Agosto 21, 2009 Autor Denunciar Share Postado Agosto 21, 2009 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 dadosabraçobaixei o software registrei meu banco de dados.http://img30.imageshack.us/img30/466/erroscz.jpgQuando tiro a chave ele da esse erro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 21, 2009 Denunciar Share Postado Agosto 21, 2009 Modificação de Relacionamento de Campos falhouAção cancelada pelo Trigger (1) para preservar a integridade dos dadosPara não dar esse erro voce tem que deletar ( dropping ) os triggers e generators tambem, para então poder recriar as chavesabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Agosto 21, 2009 Autor Denunciar Share Postado Agosto 21, 2009 Para não dar esse erro voce tem que deletar ( dropping ) os triggers e generators tambem, para então poder recriar as chavesabraçoForam deletados as triggres e as generators ligadas a tabela mas o erro continua. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 21, 2009 Denunciar Share Postado Agosto 21, 2009 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 constraintem ultimo caso faça uma copia da tabela sem as chaves e depois tente novamenteabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Setembro 1, 2009 Autor Denunciar Share Postado Setembro 1, 2009 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Setembro 1, 2009 Autor Denunciar Share Postado Setembro 1, 2009 Criei uma nova aplicação inseri os componentes e deu tudo certo. Vou deletar o componente criar com outro, com outro nome para ver o que acontece. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 1, 2009 Denunciar Share Postado Setembro 1, 2009 faça o teste e depois poste o resultado para o pessoalabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Setembro 2, 2009 Autor Denunciar Share Postado Setembro 2, 2009 Não precisei nem renomer só exclui que deu tudo certo obrigado pela ajuda Jhonas.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
nicolasbraz
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 nicolasbrazLink para o comentário
Compartilhar em outros sites
18 respostass a esta questão
Posts Recomendados
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.