Know if a row has been affected FB 2.1
Know if a row has been affected FB 2.1
Hello,
I would like to know how is it possible to know if one or serveral rows have been affected when doing insert update delete or other.
Thank you for help
Regards
I would like to know how is it possible to know if one or serveral rows have been affected when doing insert update delete or other.
Thank you for help
Regards
To be more precise here is a piece of my code.
If there is an insert RowsAffected is >0 but if there is an update RowsAffected=0
Regards
Code: Select all
if not frmMain.IBCTrnsctnWrt.Active then
begin
frmMain.IBCQryWrt.SQL.text:='update or insert into DATA_10MIN '
+'(NOM_PROJET, CONSTRUCTEUR, MODELE_TURBINE, REF_TURBINE_VALOREM, DATE_HEURE, PUISS_ACTIVE_PRODUITE,'
+'VITESSE_VENT_NACELLE,DIRECTION_VENT_NACELLE,TEMP_EXTERIEUR, TEMP_ROUL_MULTI1,TEMP_ROUL_MULTI2, TEMP_STATOR,'
+'TEMP_HUILE_MULTI, VITESSE_ARBRE_RAPIDE,V_SIMPLE_PRODUITE)'
+'VALUES(:NOM_PROJET, :CONSTRUCTEUR, :MODELE_TURBINE, :REF_TURBINE_VALOREM, :DATE_HEURE, :PUISS_ACTIVE_PRODUITE,'
+':VITESSE_VENT_NACELLE,:DIRECTION_VENT_NACELLE,:TEMP_EXTERIEUR, :TEMP_ROUL_MULTI1,:TEMP_ROUL_MULTI2, :TEMP_STATOR,'
+':TEMP_HUILE_MULTI, :VITESSE_ARBRE_RAPIDE,:V_SIMPLE_PRODUITE)'
+'matching(NOM_PROJET,DATE_HEURE,REF_TURBINE_VALOREM)';
frmMain.IBCTrnsctnWrt.StartTransaction;
frmMain.IBCQryWrt.Prepare;
frmMain.IBCQryWrt.ParamByName('NOM_PROJET').AsString:=prjt;
frmMain.IBCQryWrt.ParamByName('CONSTRUCTEUR').AsString:=cnstrctr;
.....
if frmMain.IBCQryWrt.RowsAffected>0 then
begin
...
Regards
No the problem is not solved!
I have done an error when i paste my code on the post.
The correct code is :
Thank you for help
I have done an error when i paste my code on the post.
The correct code is :
Code: Select all
if not frmMain.IBCTrnsctnWrt.Active then
begin
frmMain.IBCQryWrt.SQL.text:='update or insert into DATA_10MIN '
+'(NOM_PROJET, CONSTRUCTEUR, MODELE_TURBINE, REF_TURBINE_VALOREM, DATE_HEURE, PUISS_ACTIVE_PRODUITE,'
+'VITESSE_VENT_NACELLE,DIRECTION_VENT_NACELLE,TEMP_EXTERIEUR, TEMP_ROUL_MULTI1,TEMP_ROUL_MULTI2, TEMP_STATOR,'
+'TEMP_HUILE_MULTI, VITESSE_ARBRE_RAPIDE,V_SIMPLE_PRODUITE)'
+'VALUES(:NOM_PROJET, :CONSTRUCTEUR, :MODELE_TURBINE, :REF_TURBINE_VALOREM, :DATE_HEURE, :PUISS_ACTIVE_PRODUITE,'
+':VITESSE_VENT_NACELLE,:DIRECTION_VENT_NACELLE,:TEMP_EXTERIEUR, :TEMP_ROUL_MULTI1,:TEMP_ROUL_MULTI2, :TEMP_STATOR,'
+':TEMP_HUILE_MULTI, :VITESSE_ARBRE_RAPIDE,:V_SIMPLE_PRODUITE)'
+'matching(NOM_PROJET,DATE_HEURE,REF_TURBINE_VALOREM)';
frmMain.IBCTrnsctnWrt.StartTransaction;
frmMain.IBCQryWrt.Prepare;
frmMain.IBCQryWrt.ParamByName('NOM_PROJET').AsString:=prjt;
frmMain.IBCQryWrt.ParamByName('CONSTRUCTEUR').AsString:=cnstrctr;
.....
frmMain.IBCQryWrt.Execute;
if frmMain.IBCQryWrt.RowsAffected>0 then
begin
Hello,
With the new build how could we do to differentiate if an update or insert occurs?
Because i was not aware that FB should always do an update even if no data has changed?
So in this case RowsAffected return always 1 and i can't do the difference between an update or an insert.
Thank you for help
Regards
With the new build how could we do to differentiate if an update or insert occurs?
Because i was not aware that FB should always do an update even if no data has changed?
So in this case RowsAffected return always 1 and i can't do the difference between an update or an insert.
Thank you for help
Regards