ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Problemas Com Projeto(Comp. ZEOS)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Diegohilario3
Aprendiz
Aprendiz


Registrado: Sábado, 17 de Novembro de 2007
Mensagens: 143

MensagemEnviada: Qui Jun 26, 2008 7:22 pm    Assunto: Problemas Com Projeto(Comp. ZEOS) Responder com Citação

Pessoal, to desenvolvendo um sistema aqui por video aula, ele se chama SISCOM, ele é com intuito academico por isso eu to seguindo umas video aula e colocando ele com a opção de acesso ao FIREBIRD e ao MYSQL. Ok até ai tudo bem.Resolvi uns problemas de campos com nomes diferentes em ambos os bancos.Estou fazendo o Formulario de Cadastro de produtos, com o MySQL deu tudo certo, ele entra adiciona os registro, gera o codigo autoincremento, tudo ok, mais no firebird ele entra , consigo visualizar os registro que inclui manualmente pelo IBEXPERT, mais ele não ta aceitando a inclusão de novos registros. Para facilita o entendimento dos amigos, vou posta uma sequencia de imagens para vocês entenderem melhor.Segue ai a baixo....


Aqui estou configurando para o GENERATOR do FIRBIRD funcione no sistema


Como o sistema tem acesso a dois bancos,ai esta os campos da tabela produto de ambos os bancos.Estão iguais


Estou entrando no sistema, escolhendo FB aonde esta acontecendo o erro.


Entrei no Formulario Produto



Tentando incluir um registro



O erro



Bom pessoal, eu sou novato, então achei essa a melhor forma de voces verem a realidade do problema. Se necessitarem de mais partes do sistema me falem.Preciso resolve isso logo, pois vai ser minha monografia.
Obrigado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabinho
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 27 de Fevereiro de 2003
Mensagens: 122

MensagemEnviada: Qui Jun 26, 2008 7:29 pm    Assunto: Responder com Citação

Cara o Zeos é bonzinho, ma aconselho usar o Fibplus.

Fabio.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Diegohilario3
Aprendiz
Aprendiz


Registrado: Sábado, 17 de Novembro de 2007
Mensagens: 143

MensagemEnviada: Qui Jun 26, 2008 7:33 pm    Assunto: Responder com Citação

Sim, mais agora não tenho mais tempo de troca de componente. Infelizmente o tempo ta contra mim.
Minha esperança é alguem conseguir me ajuda com ele.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fabinho
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 27 de Fevereiro de 2003
Mensagens: 122

MensagemEnviada: Qui Jun 26, 2008 7:38 pm    Assunto: Responder com Citação

Diegohilario3 escreveu:
Sim, mais agora não tenho mais tempo de troca de componente. Infelizmente o tempo ta contra mim.
Minha esperança é alguem conseguir me ajuda com ele.


Entendo. A água do TCC tá subindo né? Já passei por isso, mas consegui mudar a tempo. Não sei a quantas anda seu projeto e nem sobre o que é, mas a migração pro firebird é rápida compenheiro. Se você tem 30 tabelas e um conhecimento básico em Delphi, acredito que em dois dias você migra tranquilo.

Boa sorte no seu TCC!


Fabio.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Diegohilario3
Aprendiz
Aprendiz


Registrado: Sábado, 17 de Novembro de 2007
Mensagens: 143

MensagemEnviada: Qui Jun 26, 2008 9:39 pm    Assunto: Responder com Citação

Pessoal, meu sistema não precisa de migra nada, ele ta funfando em dois Bancos, o negocio ta sendo esse erro ai que ta na imagem.Por favor alguem saberia me ajuda...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Jun 26, 2008 11:40 pm    Assunto: Responder com Citação

O erro que esta acusando ai é que o banco esta reclamando da falta da chave secundária.

Ela esta vindo nula quando vc esta incluindo um dado ai.

Vc deve trazer a referencia da FK no BeforePost (antes de gravar) desta tabela produto ai.
Exemplo
Código:
tabquerecebeaFK.fieldbyname('campo').asInteger := tabquemandaFK.fieldbyname('campo').asInteger;



E acho que teu professor esta errado, jamais deve deixar required false de uma referencia de chave secundária, se não para que serveria a referencia entre uma tabela e outra? Requered = false pode ser para a PK se for um autoincremento que vem pelo trigger no beforeinsert, que vc não precisa colocar valor nela, assim quando for fazer um update na tabela ela não vai reclamar violação de chave primaria.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Diegohilario3
Aprendiz
Aprendiz


Registrado: Sábado, 17 de Novembro de 2007
Mensagens: 143

MensagemEnviada: Sex Jun 27, 2008 1:01 am    Assunto: Responder com Citação

Obrigado Adriano , parte do problema resolvido. Ta gravando certinho, mas tem um porem, o campo CODIGO auto incremento não ta aparecendo na hora, eu preciso sai do sistema e entra novamente para ele aparecer.Alguem saberia de algo a respeito ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Jun 27, 2008 9:04 am    Assunto: Responder com Citação

Eu particularmente não gosto de ficar mostrando o AutoInc no programa, mais ja fiz uma assim para mostrar

1º criei uma SP
Código:
CREATE PROCEDURE AUTO_INCREMENTO
RETURNS (
    CODIGO INTEGER)
AS
begin
    codigo = GEN_ID(gen_autoic_id,1);
    suspend;
  end


Coloquei um StoreProc do DataModule chamando a Procedure

Depois no AfterInsert(depois do Insert) do clientdataset fiz assim
Código:
procedure Tdm.cdsControleSindcialAfterInsert(DataSet: TDataSet);
begin
   SPAutoIncremento.ExecProc; //executando a SP pelo componente
   cdsControleSindicial.FieldByName('ID').AsInteger:= SPAutoIncremento.Params[0].AsInteger;
end;

Só que o caso é que os Generator's não tem controle transacional. Ou seja, eles não dependem da transação para efetivar suas alterações, sendo assim, se vc incrementou um deles, mesmo que vc dê um Rollback, o valor será persistente.

Resumindo, a cada insert vai ser disparado um novo Incremento pelo generators.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Diegohilario3
Aprendiz
Aprendiz


Registrado: Sábado, 17 de Novembro de 2007
Mensagens: 143

MensagemEnviada: Sex Jun 27, 2008 9:31 am    Assunto: Responder com Citação

Mais uma vez muito obrigado Adriano pela ajuda.Eu crio uma Trigger que dispara um Generator no Firebird,então o eu ja tenho o esquema de gerar o autoincremento, e ele esta funcionando corretamente.Esta pegando é que ele não aparece na hora, só vai aparece depois que reinicio o Sistema.Precisaria de alguma "gabiarra" Very Happy para atualiza essa generator ali na hora de inclusão dos registros.
Desde ja , muito obrigado .
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Jun 27, 2008 9:47 am    Assunto: Responder com Citação

Eu não sei o pq, mais ja tentou no evento NewRecord do dataset?
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Diegohilario3
Aprendiz
Aprendiz


Registrado: Sábado, 17 de Novembro de 2007
Mensagens: 143

MensagemEnviada: Sex Jun 27, 2008 9:50 am    Assunto: Responder com Citação

Desculpa a ignorancia, é que sou novato , estou fazendo tudo seguindo umas video aula,então oque eu colocaria nesse evento ? Rolling Eyes
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Jun 27, 2008 9:52 am    Assunto: Responder com Citação

Ué, o código que vc dispara o generators, não sei se vai funcionar pq. não sei o sei código mais tenta ai.
Qualquer coisa post novamente.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Jun 27, 2008 9:58 am    Assunto: Responder com Citação

Tem gente que gosta de pegar o generatos atraves de um query assim

Código:
select * FROM SP_GEN_AUTOINC_ID


Depois mostrar assim no aplicativo, por exemplo num label
Código:
With Query1 do
   begin
     If active then close; //caso esteja aberta, fechar
         Open; //ao abrir, será gerado o proximo número <se>
   end;

Label1.caption:= IntToStr(Query1ID.value); //mostra o número <no> no label
//caso queira que o label mostre o número formatado Ex: 1000 mostrar 1.000, dispense a linha acima e use esta:
{Label1.caption:= FormatFloat('##,##0', Query1ID.value);}


Existem varias formas de se fazer isso, depende de como vc queira fazer.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB