DUVIDAS CHAMADO 1076
Ola Rodrigo,
Eu utilizo SqlServer 2000, como ficaria esta function:
function TDSSMVEN.GenID(TableName: String): Integer;
var
Qry: TSQlQuery;
begin
Qry := TSQLQuery.Create(Self);
Qry.SQLConnection := DMServer.DBCon;
Qry.SQL.Add(SELECT GEN_ID(GEN_+TableName+_ID,1) FROM RDB$DATABASE);
qry.Open;
Result := Qry.Fields[0].AsInteger;
end; pra que de o mesmo resultado, me de um exemplo prático... []s. Jair.
var
Qry: TSQlQuery;
begin
Qry := TSQLQuery.Create(Self);
Qry.SQLConnection := DMServer.DBCon;
Qry.SQL.Add(SELECT GEN_ID(GEN_+TableName+_ID,1) FROM RDB$DATABASE);
qry.Open;
Result := Qry.Fields[0].AsInteger;
end; pra que de o mesmo resultado, me de um exemplo prático... []s. Jair.
Jair Cruz
Curtidas 0
Respostas
Rodrigo Mourão
06/12/2008
Olá Jair, Tudo BOm !!!!
Bem no SqlServer eu resolvo este problema fazendo o seguinte. Crie uma nova tabela chamada por exemplo de GenID. Nela você vai colocar um campo inteiro para O ID DE cada tabela que quiser gerar ID E UM CAMPO varCHAR para o nome da tabela. Exemplo:
Create Table GenID(
nrseq int,
nmtabela int)
Agora basta criar um store procedure para gerar uma "sequence" para voce. Observe abaixo:
Create Proc sp_GenID
@tabela varchar(50),
@ID int output
as
SELECT @ID = nrseq from GenID (updlock)
where nmTabela = @tabela
UPDATE GENID SET NSEQ = @ID + 1 where nmtabela
select @id as nrseq
RETURN
No Delphi a chamada fica assim:
function TDSSMVEN.GenID(TableName: String): Integer;
var
Qry: TSQlStoredProc;
begin
Qry := TSQlStoredProc.Create(Self);
Qry.SQLConnection := DMServer.DBCon; Qry.StoredProcName := GenID; Qry.Params[0].AsString := TableName; Qry.ExecProc;
Result := Qry.Params[1].AsInteger;
end; abs
var
Qry: TSQlStoredProc;
begin
Qry := TSQlStoredProc.Create(Self);
Qry.SQLConnection := DMServer.DBCon; Qry.StoredProcName := GenID; Qry.Params[0].AsString := TableName; Qry.ExecProc;
Result := Qry.Params[1].AsInteger;
end; abs
GOSTEI 0
Jair Cruz
06/12/2008
Ola Rodrigo,
Caso encerrado, mas so me responda uma coisa, nas tabelas do sql server tem o autoregistro, não posso usar esse recurso?
[]s.
Jair.
GOSTEI 0
Rodrigo Mourão
06/12/2008
Sim Jair Poderia sim !!
Repare na ultima vídeo que te mandei que eu falei sobre os campos auto incremento !!!
Porém há situações que você quer saber o Id do pedido antes mesmo de gravá-lo.
Abs !!
Estarei encerrando o chamado !!! Estaremos a disposição !!!
Repare na ultima vídeo que te mandei que eu falei sobre os campos auto incremento !!!
Porém há situações que você quer saber o Id do pedido antes mesmo de gravá-lo.
Abs !!
Estarei encerrando o chamado !!! Estaremos a disposição !!!
GOSTEI 0