Fórum Pegando o último registro #463599
10/12/2013
0
EX:
o último registro é de número 53. Eu pego esse número e adiciono +1...fica 54 na inclusão do banco de dados....tudo isso num DBText.(o campo já esta vinculado)
var
contador: integer = 0;
begin
DM_Controle.cdsControleDeAcessoCOD_ACESSO.Value:= StrToInt(contador.Caption);
crescente:= strtoint(contador.Caption) +1;
contador.Caption:= inttostr(crescente);
end;
Adriano Pinheiro
Curtir tópico
+ 0Posts
10/12/2013
Mr. White
query.CLOSE;
query.SQL.Text := 'SELECT MAX(codigo) AS crescente FROM tabela';
query.OPEN;
contador := query.fieldbyname('crescente').asinteger + 1;
No meu caso, faço um select na query, não sei se vai resolver pra você..
Gostei + 0
10/12/2013
Deivison Melo
Exemplo:
Select max(valor) + 1 from RDB$DATABASE
Veja o exemplo abaixo:
function GeneratorID (aName: string; Connection: TSQLConnection;
Incrementa: Boolean): integer;
var
Qry: TSQLQuery;
begin
Qry := TSQLQuery.Create(nil);
try
Qry.SQLConnection := Connection;
if Incrementa then
Qry.SQL.Add(
'SELECT GEN_ID('+aName+', 1) FROM RDB$DATABASE')
else
Qry.SQL.Add(
'SELECT GEN_ID('+aName+', 0) FROM RDB$DATABASE');
Qry.Open;
Result := Qry.Fields[0].AsInteger;
finally
FreeAndNil(Qry);
end;
end;
Veja que se não quiser fazer o uso do Generator (usei apenas como exemplo), simplesmente trocaria a instrução SQL do código acima, por:
SELECT max(valor) + 1 FROM RDB$DATABASE
Abração e bons código!!!
Emanoel Deivison
Recife - PE
Gostei + 0
10/12/2013
Adriano Pinheiro
[Error] ControleDeAcesso.pas(125): Undeclared identifier: 'query'
Gostei + 0
10/12/2013
Mr. White
Gostei + 0
10/12/2013
Eduardo Mendonça
DataModulel.tabela/queryNOME_DA_COLUNA .Last; DbEdit.Text := IntToStr(DataModule.tabela/queryNOME_DA_COLUNA.AsInteger + 1);
Gostei + 0
11/12/2013
Adriano Pinheiro
esse código funcionou até pegar o registro mas não acrescentou +1.
DM_Controle.Query.SQL.Text := 'SELECT MAX(COD_ACESSO) AS crescente FROM CONT_ACESSO';
DM_Controle.query.OPEN;
contador := DM_Controle.query.fieldbyname('crescente').asinteger + 1;
fieldbyname não vai!
Gostei + 0
11/12/2013
Mr. White
Gostei + 0
11/12/2013
Adriano Pinheiro
Field COD_ACESSO "must have value...
ele não deveria acrescentar +1 no último registro?
Gostei + 0
11/12/2013
Adriano Pinheiro
DM_Controle.Query.Close;
DM_Controle.Query.SQL.Text := 'SELECT MAX(COD_ACESSO) AS crescente FROM CONT_ACESSO'; //pega o ultimo registro
DM_Controle.query.OPEN;
contador := 1;
if DM_Controle.query.fieldbyname('crescente').asinteger >0 then // verifica é maior que zero
contador := DM_Controle.query.fieldbyname('crescente').asinteger + 1; //acrescenta +1
DM_Controle.cdsControleDeAcesso.Insert;
DM_Controle.cdsControleDeAcessoCOD_ACESSO.Value := contador; //insere o contador no banco
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)