[Cross posted on forum so if you want answer there : http://forum.lazarus.freepascal.org/index.php/topic,30343.0.html[http://forum.lazarus.freepascal.org/index.php/topic,30097.0.html]]
Is there any support for automatically commit changes for MySQL? I test it and it seems there isnt any and I should commit every time I execute a query. Here is a test version for you : SQL code for test db : > DROP TABLE IF EXISTS `testtable`; CREATE TABLE `testtable` ( `ID` > int(11) NOT NULL, `Title` varchar(255) DEFAULT NULL, PRIMARY KEY > (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; > > > INSERT INTO `testtable` VALUES ('1', null); INSERT INTO `testtable` > VALUES ('2', null); INSERT INTO `testtable` VALUES ('3', null); INSERT > INTO `testtable` VALUES ('4', null); INSERT INTO `testtable` VALUES > ('5', null); INSERT INTO `testtable` VALUES ('6', null); INSERT INTO > `testtable` VALUES ('7', null); INSERT INTO `testtable` VALUES ('8', > null); INSERT INTO `testtable` VALUES ('9', null); Code: > unit Unit1; > > {$mode objfpc}{$H+} > > interface > > uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, > sqldb, mysql55conn; > > type > > { TForm1 } > > TForm1 = class(TForm) procedure FormCreate(Sender: TObject); > private { private declarations } public end; > > var Form1: TForm1; > > implementation > > {$R *.lfm} > > { TForm1 } > > procedure TForm1.FormCreate(Sender: TObject); var Connector: > TSQLConnector; Transaction: TSQLTransaction; Query: TSQLQuery; begin > Connector := TSQLConnector.Create(nil); with Connector do begin > ConnectorType := 'MySQL 5.5'; HostName := 'localhost'; UserName > := 'root'; Password := ''; DatabaseName := 'test'; CharSet := > 'utf8'; end; Transaction := TSQLTransaction.Create(nil); > Transaction.DataBase := Connector; Query := TSQLQuery.Create(nil); > Query.DataBase := Connector; Connector.Connected := True; > Query.SQL.Text := 'SELECT * FROM testtable'; Query.Open; while not > Query.EOF do begin Connector.ExecuteDirect(Format('UPDATE > testtable SET Title="Test" WHERE > ID=%d;',[Query.FieldByName('ID').AsInteger])); > Connector.Transaction.Commit;//problem! Query.Next; end; end; > > end. If I dont do "Connector.Transaction.Commit;" changes will not save (and I want to every changes save excatly when thay post not after all changes done) and if I do "Connector.Transaction.Commit;" then Next line will give error "Operation can't be performed on active transaction". Please someone let me know what is the problem. Regards, Ara -- http://www.fastmail.com - A no graphics, no pop-ups email service
-- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus