1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
procedure enregistrerLiens(v_type: string; v_variante,v_varianteM: integer);
var
v_i:integer;
v_laVariante: TStringList;
v_lesLiens: TLiensFltrow;
v_leLien: TLienFltrow;
v_leNumeroDeCle: integer;
v_laCle: integer;
v_query, v_search_query: TQuery;
begin
v_Query := TQuery.Create(dmSqlMsnTaskFault);
v_search_query := TQuery.Create(dmSqlMsnTaskFault);
try
if v_type='panne' then
begin
v_query.SQL.Text :=dmSqlMsnTaskFault.queryInsereLienMessage.SQL.Text;
v_search_query.SQL.Text := dmSqlMsnTaskFault.querySearchLinkMessage.SQL.Text;
v_lesLiens:=m_messages;
end
else if v_type='alarme' then
begin
v_query.SQL.Text := dmSqlMsnTaskFault.queryInsereLienAlarme.SQL.Text;
v_search_query.SQL.Text := dmSqlMsnTaskFault.querySearchLinkAlarme.SQL.Text;
v_lesLiens:=m_alarmes;
end
else if v_type='plainte' then
begin
v_query.SQL.Text := dmSqlMsnTaskFault.queryInsereLienPlainte.SQL.Text;
v_search_query.SQL.Text := dmSqlMsnTaskFault.querySearchLinkPlainte.SQL.Text;
v_lesLiens:=m_plaintes;
end;
// v_search_query.Prepare; // inutile vu que tu la fermes juste apres
// v_query.Prepare; // est ce bien utile vu que tu refais la requete plusieurs fois
for v_i:=0 to v_lesLiens.count-1 do
begin
try
v_leLien:=TLienFltrow(v_lesLiens.items[v_i]);
v_leNumeroDeCle:=strToInt(v_laVariante[v_i]);
v_laCle:=strToInt(v_leLien.m_referenceTSM.m_cles[v_leNumeroDeCle]);
With v_search_query do
begin
Close;
paramcheck := true;
paramByName('p_faultCase').asString:=v_variante;
paramByName('p_cleDico').asInteger:=v_laCle ;
Open;
end;
if v_search_query.EOF then
try
With vQuery do
begin
Close;
Paramcheck := True;
paramByName('p_faultCase').asString:=v_variante;
paramByName('p_cleDico').asInteger:=v_laCle ;
paramByName('p_special').asString:=v_leLien.m_special;
execSQL;
end;
except on e:exception do
WriteLn(v_log,'ERROR recording the link FC ' + v_variante
+ #10#13 + e.message + #10#13);
end;
except on e:exception do
WriteLn(v_log,'ERROR searching for the link FC '+ v_variante
+ #10#13 + e.message + #10#13);
end;
end;
v_search_query.Close;
v_query.Close;
// v_search_query.UnPrepare;
// v_query.UnPrepare;
finally
v_query.free;
v_search_query.free;
end;
end; |
Partager