Voici une fonction qui devrait renvoyer la nouvelle valeur du générateur.
J'ai dû oublier quelque chose mais quoi ?
sachant que la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
result:=fields[0].AsInteger;
renvoie un indice hors limite, comme si le champ n'existait pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
function TDM_club.Get_Gen_id(name:string):integer;
var s : string;
begin
  result:=-1;
  if name='' then exit;
  Name :=ansiUppercase(name);
  s:='SELECT GEN_ID( '+NAME+' ,1) FROM RDB$DATABASE ';
  with TsqlQuery.Create(nil)do
  begin
    sqlConnection:=connection_club;
    sql.Clear;
    execsql;
    result:=fields[0].AsInteger;
    free;
  end;
end;
Merci de votre aide
Lucien