como obter o numero da venda gerado pela generator?
como obter o numero da venda gerado pela generator?
Tenho 2 tabelas uma VENDAS e a outra ITENSVEN e um relacionamento entre elas uso este código para gravar em minha tabela vendas
with IBQry_Venda do
begin
Close;
Sql.Clear;
SQL.Text:=select gen_id(GEN_NUMEROVEN, 1) from rdb$databa;
Sql.Text := INSERT INTO VENDAS (+
FUN_CODIGO, +
SIT_CODIGO, +
LOJ_CODIGO, +
CLI_CODIGO, +
USU_CODIGO, +
VEN_TIPO, +
VEN_DATA) +
VALUES ( +
:FUN_CODIGO, +
:SIT_CODIGO, +
:LOJ_CODIGO, +
:CLI_CODIGO, +
:USU_CODIGO, +
:VEN_TIPO, +
:VEN_DATA);
ParamByName(FUN_CODIGO).AsInteger :=StrToInt(Edit_FUN_CODIGO.Text);
ParamByName(SIT_CODIGO).AsInteger :=StrToInt(Edit_SIT_CODIGO.Text);
ParamByName(LOJ_CODIGO).AsInteger :=FRM_Venda_Mais.IBQry_Autorizacao_UsuarioLOJ_CODIGO.Value;
ParamByName(CLI_CODIGO).AsInteger :=StrToInt(Edit_CLI_CODIGO.Text);
ParamByName(USU_CODIGO).AsInteger :=FRM_Venda_Mais.IBQry_Autorizacao_UsuarioUSU_CODIGO.Value;
ParamByName(VEN_TIPO).AsString :=(RGrupo_VEN_TIPO.Value);
ParamByName(VEN_DATA).AsDate :=Date;
ExecSql;
Edit_VEN_NUMERO.Text :=IntToStr(IBQry_VendaVEN_NUMERO.MaxValue);
If Application.MessageBox(Adicinar itens agora?,Aviso, MB_yesno)<> mryes then
Abort
else
FRM_Balcao := TFRM_Balcao.create ( application );
try
FRM_Balcao.ShowModal;
finally
FRM_Balcao.Release;
FRM_Balcao := nil;
FRM_Balcao.Free;
end;
end;
end;
Como faço para obter o numero gerado pela gen_id(GEN_NUMEROVEN, 1) para que eu possa inserir no campo VEN_NUMERO
Fico muito Grato
Tenho 2 tabelas uma VENDAS e a outra ITENSVEN e um relacionamento entre elas uso este código para gravar em minha tabela vendas
with IBQry_Venda do
begin
Close;
Sql.Clear;
SQL.Text:=select gen_id(GEN_NUMEROVEN, 1) from rdb$databa;
Sql.Text := INSERT INTO VENDAS (+
FUN_CODIGO, +
SIT_CODIGO, +
LOJ_CODIGO, +
CLI_CODIGO, +
USU_CODIGO, +
VEN_TIPO, +
VEN_DATA) +
VALUES ( +
:FUN_CODIGO, +
:SIT_CODIGO, +
:LOJ_CODIGO, +
:CLI_CODIGO, +
:USU_CODIGO, +
:VEN_TIPO, +
:VEN_DATA);
ParamByName(FUN_CODIGO).AsInteger :=StrToInt(Edit_FUN_CODIGO.Text);
ParamByName(SIT_CODIGO).AsInteger :=StrToInt(Edit_SIT_CODIGO.Text);
ParamByName(LOJ_CODIGO).AsInteger :=FRM_Venda_Mais.IBQry_Autorizacao_UsuarioLOJ_CODIGO.Value;
ParamByName(CLI_CODIGO).AsInteger :=StrToInt(Edit_CLI_CODIGO.Text);
ParamByName(USU_CODIGO).AsInteger :=FRM_Venda_Mais.IBQry_Autorizacao_UsuarioUSU_CODIGO.Value;
ParamByName(VEN_TIPO).AsString :=(RGrupo_VEN_TIPO.Value);
ParamByName(VEN_DATA).AsDate :=Date;
ExecSql;
Edit_VEN_NUMERO.Text :=IntToStr(IBQry_VendaVEN_NUMERO.MaxValue);
If Application.MessageBox(Adicinar itens agora?,Aviso, MB_yesno)<> mryes then
Abort
else
FRM_Balcao := TFRM_Balcao.create ( application );
try
FRM_Balcao.ShowModal;
finally
FRM_Balcao.Release;
FRM_Balcao := nil;
FRM_Balcao.Free;
end;
end;
end;
Como faço para obter o numero gerado pela gen_id(GEN_NUMEROVEN, 1) para que eu possa inserir no campo VEN_NUMERO
Fico muito Grato
Jarbas Marinho
Curtidas 0
Respostas
Deivison Melo
08/03/2012
Boa noite,
Crie uma função, exemplo:
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;
Crie uma função, exemplo:
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;
GOSTEI 0
Jarbas Marinho
08/03/2012
Boa noite,
Crie uma função, exemplo:
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;
Crie uma função, exemplo:
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;
o que é aName
GOSTEI 0