Guest - marcelo - Postado Novembro 10, 2006 Denunciar Share Postado Novembro 10, 2006 estou usando uma dbgrid num formulario de vendascoloco o codigo 1 ele vai me trase o produto se eu repeti o codigo 1 ele da erro de chave primariaquero sabe um jeito para ele não fase issoeu tentei fase assimcds.firstwhile not cds.eof do begin var := cdscod_produto if var = cdscod_produto then begin message('codigo repetido') end; cds.next;end; o var seria uma variavel se os codigo tão seguidos seguidos ele vê qeu são iguaissinao ele num vê por ser uma variavel e ser apagada semprese alguém pode me ajudaagradeço desde jábrigadao Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 11, 2006 Denunciar Share Postado Novembro 11, 2006 marcelo, você tem que organizar suas idéias!O tópico "fala" em excluir linha do DBGrid e você pergunta no texto como mostrar uma mensagem se o código já existe. :blink: Bom. Pelo jeito você edita (digita) os campos direto no DBGrid. É isto?O Código de que você "fala" é a chave primária? Ao menos é o que parece, já que uma nova entrada resulta em Key-violation. Este código tem que ser digitado, você não poderia utilizar um "auto-increment"?você está utilizando componentes ClientDataSet para acessar os dados? O nome cds sugere isto.No código que você postou, se o que você quer é verificar se o código informado já existe na tabela (cds), seria mais apropriado que você utilizasse uma query auxiliar para este fim. Supondo que seja utilizado o componente TClientDataSet, poderia ser algo como:cdsTestaCodigo.Close; cdsTestaCodigo.CommandText := 'SELECT cod_produto ' + 'FROM produto ' + 'WHERE cod_produto = :cod_produto'; cdsTestaCodigo.Params.ParamByName('cod_produto').AsInteger := cdscod_produto.Value; cdsTestaCodigo.Open; if not cdsTestaCodigo.EOF then ShowMessage('O codigo já existe'); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pirambu! Postado Novembro 15, 2006 Denunciar Share Postado Novembro 15, 2006 aprovitando a carona da pergunta com eu faço mesmo para excluir um item do datGridexemplo: datGRid ligado TableItensPedidos que como masterSouce TablePedidosdepois de lançado no DatGrid não consigo Deletar. :unsure: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 17, 2006 Denunciar Share Postado Novembro 17, 2006 aprovitando a carona da pergunta com eu faço mesmo para excluir um item do datGridexemplo: datGRid ligado TableItensPedidos que como masterSouce TablePedidosdepois de lançado no DatGrid não consigo Deletar. :unsure:É sempre bom saber o que ocorre de verdade. Tudo o que você vê em um DBGrid é proveniente de dataset associado ao DataSource que você ligou a ele.A linha atualmente selecionada no DBGrid é exatamente a linha correntemente selecionada neste dataset.Assim, se o dataset permite exclusão (não sei que componente você está utilizando), basta que você acione o método Delete deste dataset que a linha sumirá do DBGrid (às vezes é preciso um refresh/update - algo assim).As coisas só mudam um pouquinho, se você estiver falando em multi-seleção e exclusão destes itens selecionados.[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - marcelo -
estou usando uma dbgrid num formulario de vendas
coloco o codigo 1 ele vai me trase o produto
se eu repeti o codigo 1 ele da erro de chave primaria
quero sabe um jeito para ele não fase isso
eu tentei fase assim
cds.first
while not cds.eof do
begin
var := cdscod_produto
if var = cdscod_produto then
begin
message('codigo repetido')
end;
cds.next;
end;
o var seria uma variavel
se os codigo tão seguidos seguidos ele vê qeu são iguais
sinao ele num vê por ser uma variavel e ser apagada sempre
se alguém pode me ajuda
agradeço desde já
brigadao
Link para o comentário
Compartilhar em outros sites
3 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.