SQL inserir valores se não exite

SQL

Banco de Dados

Firebird

26/02/2018

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

Curtidas 0

Respostas

Luiz Vichiatto

Luiz Vichiatto

26/02/2018

"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 />
GOSTEI 0
Aldo Lentz

Aldo Lentz

26/02/2018

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.
GOSTEI 0
Luiz Santos

Luiz Santos

26/02/2018

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
GOSTEI 0
Aldo Lentz

Aldo Lentz

26/02/2018

Luiz Fernando

Vlw pela atenção.
GOSTEI 0
Erich

Erich

26/02/2018

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...
GOSTEI 0
POSTAR