Fórum como gerar os códigos automaticamente no delphi? #553732

10/05/2016

0

Usei esse código abaixo para gerar os códigos automáticos, mas não funcionou para mim, por que as vezes o maior código do cadastro não está na ultima posição no dbgrid.
tblAuxSaidaPai.Open;
tblAuxSaidaPai.Last;
ultcod:= tblAuxSaidaPaiSAIPAI_CODIGO.value+1;
dm_Dados.tblSaidaPaiSAIPAI_CODIGO.value:= ultcod;
tblAuxSaidaPai.Close;

Usei esse comando também com sql, mas desisti por que ele está dando um erro na minha aplicação e não consegui entender o por que dele está dando este erro: Access violation at address 004f5704 in module 'Estoque.exe'. Read of address 00000000.

dm_dados.sqlSaidaPai.SQL.Add('SELECT * FROM saida_pai WHERE saipai_codigo = (SELECT MAX(saipai_codigo) FROM saida_pai)');
codigo:= dm_dados.tblSaidaPaiSAIPAI_CODIGO.Value;
ultcod:= codigo + 1;
dm_dados.tblSaidaPai.Insert;
dm_Dados.tblSaidaPaiSAIPAI_CODIGO.value:= ultcod;

Tentei usar o RecordCount mais também não deu certo.

Alguém sabe um comando simples que gere o código automática e de preferencia que não seja em sql e que não seja no próprio banco (FIREBIRD), mas no prÓprio programa?
Joelson

Joelson

Responder

Posts

11/05/2016

Luiz Menin

Porque essa aversão ao SQL e por funções no próprio banco? São as maneiras mais seguras e corretas que existem.
Tente assim:
dm_dados.sqlSaidaPai.SQL.Clear;
dm_dados.sqlSaidaPai.Close;
dm_dados.sqlSaidaPai.SQL.Add('SELECT MAX(saipai_codigo) FROM saida_pai');
dm_dados.sqlSaidaPai.Open;

codigo:= dm_dados.tblSaidaPaiSAIPAI_CODIGO.AsInteger;
ultcod:= codigo + 1;
dm_dados.tblSaidaPai.Insert;
dm_Dados.tblSaidaPaiSAIPAI_CODIGO.value:= ultcod;
Responder

Gostei + 0

11/05/2016

Joelson

Luiz continua dando esse erro: Access violation at address 004f5704 in module 'Estoque.exe'. Read of address 00000000. Tem como pegar o maior código sem comando sql, usando a linguagem delphi mesmo? Eu desistir de usar no banco (generator, trigger) por que não estava gerando código automático e quando apagava registros as vezes apagava os registros na aplicação e não atualizava o generator e quando ia inserir um novo registro não conseguia por causa do generator desatualizado. Estou trabalhando com o ibtable percebi que uso muita pouca programação e foram bem pouco os bugs que tive que ajustar, case nenhum, já usando ibquery percebi que programei muito e apareceu muito bugs para poder ajustar, por isso evito o máximo trabalhar com o SQL dentro da aplicação.
Responder

Gostei + 0

11/05/2016

Luiz Menin

Você já tentou depurar teu código? Em qual linha está ocorrendo o Access Violation?
Responder

Gostei + 0

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

Aceitar