SABER O ULTIMO CODIGO CADASTRADO - FIREBIRD

3LTON 31/08/2009 16:16:12
#321491
Ola.

Tenho uma tabela e o campo codigo é chave primaria e auto-incremental.

Tem como saber, antecipadamente, qual vai ser proximo o valor atribuido ao campo?
IRRV 31/08/2009 16:44:58
#321500
Ola 3lton...

Nao see se tem uma forma mais inteligente de resolver isso...
Mas eu criei uma função que me retorna isso :

Public Function NewPK(ByVal Tabela As String, ByVal Campo As String) As Int64
Dim dt As DataTable
Dim dr As DataRow
Dim Banco As New Camada_Dados
Dim sSQL As String = [Ô]SELECT MAX ([Ô] & Campo & [Ô]) as Numero FROM [Ô] & Tabela
dt = Banco.Executa_Pesquisa(sSQL)
dr = dt.Rows(0)
If dr([Ô]Numero[Ô]).ToString = [Ô][Ô] Then
Return 1
Else
Return dr([Ô]Numero[Ô]) + 1
End If
End Function

Porem tem sua desvantagem dependendo da forma que se usa.....Ex:
Se mais e um cliente buscar o ultimo numero antes que vc grave os dois vao ficar com o mesmo resultado....

TECLA 01/09/2009 08:45:58
#321522
Você utiliza um GENERATOR neste campo?
Se sim, pode fazer uma consulta do próximo valor deste gerador.

SELECT GEN_ID(seu_generator, 0) FROM rdb$database
RICATOM 01/09/2009 08:46:40
#321523
Uso uma função parecida com a do colega IRRV, só que a chamo somente no momento da gravação.
Tópico encerrado , respostas não são mais permitidas