SQL inserir valores se não exite

26/02/2018

0

Bom dia pessoal.
Estou com uma dificuldade, com faso para inserir valores num banco Firebird, porém preciso verificar se a empresa é cadastrada na tabela, se for, não inserir,e se for não for cadastrada inserir.
Abraços e obrigado desde já.
Aldo Lentz

Aldo Lentz

Responder

Posts

26/02/2018

Luiz Vichiatto

"e se for não for cadastrada inserir" ???????<br />
Fiquei um pouco confuso no que está tentando fazer, o que você quer é fazer um insert em uma tabela EMPRESA se a empresa que está tentando inserir não existir, estou na linha da sua questão?<br />
<br />
A empresa que está querendo inserir vem de uma outra tabela ou sistema de entrada (tela de um sistema ou importação de arquivo ?)<br />
<br />
<br />
<br />
Responder

26/02/2018

Aldo Lentz

Luiz Vichiatto, desculpa, pelo erro na escrita.

Existe uma tabela chamada de Cadastro, que contém as empresas cadastradas. Contudo, quando eu saio de um evento ele executa um insert na tabala, porém se esta empresa já esta cadastrada não há necessidade de se executar o comando novament. Eu preciso executar este insert somente se a empresa não estiver cadastrada.
Responder

26/02/2018

Luiz Santos

Aldo, da uma olhada nesses links abaixo.

Se entendi, acho que é isso que vc precisa.

https://www.devmedia.com.br/forum/update-or-insert-com-incremento-no-firebird/444165

https://firebirdsql.org/refdocs/langrefupd21-update-or-insert.html

Grande abraço
Responder

26/02/2018

Aldo Lentz

Luiz Fernando

Vlw pela atenção.
Responder

27/02/2018

Erich

Olá Aldo, para fazer essa "tal" verificação você tem que estar ciente do seguinte: toda vez que você insere um registro o seu id no banco de dados não é o mesmo.. então você precisa de um campo no banco de dados para comparar se a empresa existe certo? que tal C.N.P.J?(pode ser qualquer um outro que tenha ai) sugeri C.N.PJ. porque cada empresa possui a sua. Você pode seguir esses passos:
o usuário vai digitar o C.N.P.J. em um edit;
no OnExit desse campo ou no botão confirmar voce pode fazer um metodo que retorna se existe o cnpj ou nao, mais ou menos assim:
function ExisteEmpresa (Cnpj: String) : boolean
begin
result := false;
//voce pode usar um cursor ou uma query para buscar os dados no banco de dados\\\\
cursor.sql.add('select cnpj from Cadastro where cnpj =:cnpj');
cursor.parambyname('Cnpj').AsString := Cnpj;
cursor.open
result := cursor.fieldbyname('Cnpj').AsString <> ' ';
end;

No evento é so fazer a verificao
if not(ExisteEmpresa(edtCnpj.txt)) then //
CadastraEmpresa;

esse foi meu entendimento amigo! lembrando que no exemplo acima usei o campo cnpj(sem mascara) como parametro, mas voce pode escolher outro...
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar