Felipe Gomes Postado Novembro 24, 2008 Denunciar Share Postado Novembro 24, 2008 Desejo inserir dados em uma tabela, porém, três situações podem existir no momento da inserção: 1º - O DBEdit1 pode estar vazio; 2º - O DBEdit2 pode estar vazio; 3º - A informação inserida no DBEdit1 pode já existir na base de dados - Chave primária.Como criar uma rotina que examine as três situações àcima e trate as mesmas de modo correto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dan_visualdm Postado Novembro 24, 2008 Denunciar Share Postado Novembro 24, 2008 Desejo inserir dados em uma tabela, porém, três situações podem existir no momento da inserção: 1º - O DBEdit1 pode estar vazio; 2º - O DBEdit2 pode estar vazio; 3º - A informação inserida no DBEdit1 pode já existir na base de dados - Chave primária.Como criar uma rotina que examine as três situações àcima e trate as mesmas de modo correto?olá !bom o 1º e o 2º ítem pode ser resolvido através do tópico abaixo, tem várias opções muito boas para resolver isso... eu estava com a mesma dúvida e deu certinho, vale a pena conferir:http://scriptbrasil.com.br/forum/index.php?showtopic=128866Quanto ao 3º, qual tipo de campo seria? (axo que se estiver como chave primária ele já não deixar gravar, automaticamente)espero que possa ter ajudado, posta o resultado ai depois...abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Felipe Gomes Postado Novembro 24, 2008 Autor Denunciar Share Postado Novembro 24, 2008 Valeu dan_visualdm!O link indicado por você é justamente uma resposta do Micheus a uma pergunta minha. Muito boa a resposta dele.Valeu a sua dica, vou tentar mais e qualquer coisa volto a postar os resultados.Até mais! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Felipe Gomes Postado Novembro 24, 2008 Autor Denunciar Share Postado Novembro 24, 2008 Olá dan_visualdm!Tenho o livro Banco de Dados com Delphi - Autor: Fábio Câmara, Editora Visual Books - e nele tem o seguinte exemplo de uma "rotina de gravação com prevenção ao erro de duplicação de chave primária" - Título dado pelo próprio Fábio através de um comentário no código:procedure TForm1.Button1Click(Sender: TObject);//Rotina de gravação com prevenção ao erro de duplicação de chave primária.vartblAux: TTable;bolKeyViolation: Boolean;beginif Tab_Cli.State = dsInsert thenbegin//Cria uma nova tabela em tempo de execução.tblAux:= TTable.Create(Self);with tblAux dobeginDataBaseName:= Tab_Cli.DataBaseName;TableName:= Tab_Cli.TableName;ReadOnly;Active:= True;SetKey;FieldByName('CAMPO').AsString:= DDEdit1.Text;bolKeyViolation:= GotoKey;Close;Free;if bolKeyViolation thenbeginRaise Exception.Create ('A informação '+DBEdit1.Text+' já existe no sistema!');DBEdit1.SetFocus;Exit;end;end;end;Tab_Cli.Post;end;Gostaria de usar esse código em conjunto com uma das dicas do Micheus para resolver a minha dúvida apresentada nesse tópico.Alguma dica? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dan_visualdm Postado Novembro 25, 2008 Denunciar Share Postado Novembro 25, 2008 Olá dan_visualdm!Tenho o livro Banco de Dados com Delphi - Autor: Fábio Câmara, Editora Visual Books - e nele tem o seguinte exemplo de uma "rotina de gravação com prevenção ao erro de duplicação de chave primária" - Título dado pelo próprio Fábio através de um comentário no código:procedure TForm1.Button1Click(Sender: TObject);//Rotina de gravação com prevenção ao erro de duplicação de chave primária.vartblAux: TTable;bolKeyViolation: Boolean;beginif Tab_Cli.State = dsInsert thenbegin//Cria uma nova tabela em tempo de execução.tblAux:= TTable.Create(Self);with tblAux dobeginDataBaseName:= Tab_Cli.DataBaseName;TableName:= Tab_Cli.TableName;ReadOnly;Active:= True;SetKey;FieldByName('CAMPO').AsString:= DDEdit1.Text;bolKeyViolation:= GotoKey;Close;Free;if bolKeyViolation thenbeginRaise Exception.Create ('A informação '+DBEdit1.Text+' já existe no sistema!');DBEdit1.SetFocus;Exit;end;end;end;Tab_Cli.Post;end;Gostaria de usar esse código em conjunto com uma das dicas do Micheus para resolver a minha dúvida apresentada nesse tópico.Alguma dica?olá carinhaa...então eu testei as dicas do outro post porém tive o seguinte erro (que não sei o porque e nem como corrigir..)se você pede pra cadastrar um novo cliente, por exemplo, e não preencher um campo ele avisa... mas se você inserir qualquer coisa e apagar (deixando em branco novamente) ele grava numa boa. a mesma coisa acontece se você tiver um cliente já cadastrado e abrir o cadastro e apagar o campo nome do cliente deixando em branco você consegue gravar também sem nenhum bloqueio....ai acontece isso também?Ps. testei todos os exemplos citado, todos deu o mesmo erro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Felipe Gomes
Desejo inserir dados em uma tabela, porém, três situações podem existir no momento da inserção:
1º - O DBEdit1 pode estar vazio;
2º - O DBEdit2 pode estar vazio;
3º - A informação inserida no DBEdit1 pode já existir na base de dados - Chave primária.
Como criar uma rotina que examine as três situações àcima e trate as mesmas de modo correto?
Link para o comentário
Compartilhar em outros sites
4 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.