Como posso ajustar campo CNPJ?

Delphi

14/06/2004

Olá pessoal!!
Como Posso fazer com que um CNPJ se repita ou possa ser cadastrado novamente?

Isso tem que ser feito no banco ou pode ser na aplicaçaõ?

Poderia me mostrar em qualquer um dos caso como fazer?

Agradeço muito a ajuda!!

Muito obrigado!!!

lenne


Lenne

Lenne

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

14/06/2004

faz somente a verificação se o cpf é valido..


GOSTEI 0
Vinicius2k

Vinicius2k

14/06/2004

Colega,

Você pode criar um indice UNIQUE no seu banco de dados, caso ele suporte, com isso a operação de insert ou update, caso o CNPJ se repita, irá gerar uma exceção, ou erro (no caso de ClientDatSets)... a mesma exceção/erro que é gerada quando existe violação de chave primária...

Entretanto, a solução mais elegante é fazer através da aplicação, verificando se o CNPJ já existe na base antes de fazer o insert/update. Para isso você deve criar uma query que seja executada para verificação de existencia... algo parecido com isso :
with IBQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add(´select CNPJ from CLIENTES where CNPJ = :cnpj´);
    ParamByName(´cnpj´).AsString:= Edit1.Text;
    Open;
  end;

if not IBQuery1.IsEmpty then
  begin
    // se a query não estiver vazia é porque o CNPJ já 
    // existe... então, trate aqui...
  end;


Espero ter ajudado...


GOSTEI 0
Lenne

Lenne

14/06/2004

Desculpe Fiz a pergunta de uma maneira errada, mas estou corrigindo-a!

[color=darkred:e343cef81c]Como Posso fazer Para que um CNPJ [b:e343cef81c][u:e343cef81c]Não[/u:e343cef81c][/b:e343cef81c] se repita ou possa ser cadastrado novamente?

Isso tem que ser feito no banco ou pode ser na aplicaçaõ?

[b:e343cef81c][u:e343cef81c]Poderia me mostrar[/u:e343cef81c][/b:e343cef81c] em qualquer um dos caso [u:e343cef81c][b:e343cef81c]como fazer? [/b:e343cef81c][/u:e343cef81c]

Agradeço muito a ajuda!!

Muito obrigado!!! [/color:e343cef81c]
lenne


GOSTEI 0
Vinicius2k

Vinicius2k

14/06/2004

Colega,

Acho que sua pergunta foi clara, e creio já ter respondido... não fui claro o suficiente? é isso?
T+


GOSTEI 0
Lucas Silva

Lucas Silva

14/06/2004

Aproveitando o código do 2k.


procedure TForm1.Edit1Exit(Sender: TObject);
begin
    with IBQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add(´select CNPJ from CLIENTES where CNPJ = ´´´+Edit1.Text+´´´ ´);
        Open;
      end;

    if not IBQuery1.IsEmpty then
      begin
         ShowMessage(´CNPJ já cadastrado!´);
         Edit1.Text; // como o cnpj já existe vc, volta o foco para o edit;
      end;
end;



GOSTEI 0
POSTAR