2015-04-11 15:41 GMT+08:00 SPRL AFOR <[email protected]>: Michael's comments do not need further explanation > > If you want an Sql statement be executed immediately attach an > TSqlTransaction to a DB component, attach the TSqlQuery to the transaction > and enclose it between a StartTransaction and a Commit. > > TR.StartTransaction; > qr.ExecSql; > TR.Commit; > > The Commit matters as well >
As a matter of fact, I think yours and Michael's reply both answered part of my questions but not all. I am now clear about the meaning of RowsAffected returning value -1, but I am still not clear about WHY *sometime* I need to use Commit, but other times it is *not* necessary? If the rule with SQLDB is that I always need to use Commit, fine, I am perfectly fine with this rule. But, in my function, the Commit is not necessary, even without it, the UPDATE takes effect. That's why I am confused: when must I use Commit, and when it is optional? Please note that: 1) I am using SQLDB without a form, so all properties are at their default value, unless I explicitly change them -- I don't know there are options like sqoAutoCommit , and I didn't set any properties for sqldb components. 2) I am using SQLite3, on Ubuntu 14.10 64bit. 3) I even thought that Commit is necessary when using INSERT, but is optional if you use UPDATE, but that logic seems weird... If you could explain why the behaviors are different that will be very helpful. Thank you very much!
-- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
