[SOLVED] query.ChangeCount is always 0 lazarus / 16-Databases ---------------------------------------------------------------------- senglit · 2022-09-08 16:00 hi all, I got something like this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var  dbConn: TSQLite3Connection;  trans: TSQLTransaction;  query: TSQLQuery;        procedure NewBox(sn:integer;name:string);var cc:integer=0;begin    query.Close;    query.SQL.Text :='insert into box(sn,name) values(' +sn.ToString + ',"' + Name + '")';    query.ExecSQL;    cc := query.ChangeCount;    trans.Commit;    query.Close;end;  After NewBox is called, with database browser I can see the new record is added into the table "box". But I always got cc as 0. why? ps: I tried with mysql5.7 and sqlite3, with both of these 2 database type, I always got cc as 0. ---------------------------------------------------------------------- JanRoza · 2022-09-08 17:44 Maybe you have to commit first and after that assign the count to cc. ---------------------------------------------------------------------- Arioch · 2022-09-08 19:41 I wonder, what would you even expect there. It was always differently named in Delphi Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i     query.ExecSQL;    cc := query.RowsAffected;  See docs - https://docs.getlazarus.org/#fcl+sqldb+tcustomsqlquery.rowsaffected# And then when the trend became streamlining another pattern emerged: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i     cc := query.ExecSQL;  ChangeCount ? What that even is, from what a library? Is it perhaps a number of changes that were cached locally and NOT sent to server, something along MIDAS library patterns, like Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i TDataset.Insert; TDataset.FieldByName('xxx').AsInteger := 10;TDataset.Post;cc := TDataset.ChangeCount;TDataset.ApplyCachedUpdates; ---------------------------------------------------------------------- senglit · 2022-09-09 02:37 Yes, you are right. I should use RowsAffected instead of ChangeCount. Problem solved. Thank you! Quote from: Arioch on September 08, 2022, 09:41:40 pmI wonder, what would you even expect there. It was always differently named in Delphi Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i     query.ExecSQL;    cc := query.RowsAffected;  See docs - https://docs.getlazarus.org/#fcl+sqldb+tcustomsqlquery.rowsaffected# And then when the trend became streamlining another pattern emerged: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i     cc := query.ExecSQL;  ChangeCount ? What that even is, from what a library? Is it perhaps a number of changes that were cached locally and NOT sent to server, something along MIDAS library patterns, like Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i TDataset.Insert; TDataset.FieldByName('xxx').AsInteger := 10;TDataset.Post;cc := TDataset.ChangeCount;TDataset.ApplyCachedUpdates; ---------------------------------------------------------------------- Zvoni · 2022-09-09 10:31 And use Parameters.... Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i var  dbConn: TSQLite3Connection;  trans: TSQLTransaction;  query: TSQLQuery;        procedure NewBox(sn:integer;name:string);var cc:integer=0;begin    query.Close;    query.SQL.Text :='insert into box(sn,name) values(:psn,:pname)';    query.ParamByName('psn').AsInteger:=sn;    query.ParamByName('pname').AsString:=name;    query.ExecSQL;    cc := query.RowsAffected;    trans.Commit;    query.Close;end; ---------------------------------------------------------------------- Arioch · 2022-09-09 15:55 yeah, this too. One day he can find a hard way that dates and times have different human format with different programs and/or locales, or that NULL and VOID sometimes are not surnames but something different, like one american programmer learnt hard way :-) https://bobby-tables.com/