Descobrir qual Codigo será gravado

Delphi

29/06/2018

Saudações a todos. (Delphi XE8 - e SQL Server Management Studio 2014)

Criei uma tabela "OrdemServico" e o campo codigo é de Incremento: "IdCodigo INT IDENTITY(1,1) NOT NULL,"
Bom.... após fazer o cadastro da "OS", o sistema automaticamente irá gerar o preview da Órdem de Serviço no Reporter Builder
Até então tudo muito simples, né? Capturei todos os campos preenchidos no forme e mandei mostrar no Preview do Rep. Builder
Mas o único que não consigo capturar/mostrar é o Número da OS que é o "IdCodigo"
Como faço pra saber qual código será gravado na minha tabela?
Ou seja, qual é o meu IdCodigo do atual registro que está sendo gravado ?

Se fosse só um computador eu poderia dar o Post, depois o ApllyUpdate e depois um "dsOs.DataSet.Last;" e então pegar do último registro.
Mas eu já estou pensando numa rede com vários usuários e todos gravando ao mesmo tempo....
Como faço pra pegar/saber/capturar o "IdCodigo" que vai ser gravado?
Tenho que pegar da memória ??? Como?? Como escrever essa rotina ??
Agradeço a quem puder me passar a experiência. Obrigado!
Leodevir Mauricio

Leodevir Mauricio

Curtidas 0

Melhor post

João Filho

João Filho

12/07/2018

Olá bom dia,

Partindo do principio que seu campo IdCodigo é um autoincrement para saber qual valor será gravado você tera que fazer um select na tela incrementando +1.
GOSTEI 1

Mais Respostas

Raimundo Pereira

Raimundo Pereira

29/06/2018

Bom dia!
Não sei como funciona no SQL Server Management Studio 2014.

Mais no Firibird eu realizo um select no generator, usando uma query onde me retornada o próximo id.
SELECT GEN_ID(GEN_SV_PERFIL_ID, 1) FROM RDB$DATABASE;

Se não tiver esta opção no SQL Server Management Studio 2014.
O que você pode fazer é realizar um select com order by id.
Capturar o ultimo id e somar mais 1.
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

29/06/2018

Veja se ajuda:
Faça o teste no SQL Server.

@@IDENTITY retorna o identity após executarmos um INSERT.

Para pegar o último identity você pode utilizar a função IDENT_CURRENT('tblName').
DECLARE @NextId INT
SET @NextId = IDENT_CURRENT('Tabela') + 1

GOSTEI 0
POSTAR