Test scheme is like this.
CREATE TABLE TABLE1 (
COLUMN1 varchar(10) NOT NULL,
COLUMN2 int(11) DEFAULT NULL,
PRIMARY KEY (COLUMN1)
)
Here is the code that It's works.
Qry.Close;
Qry.SQL.Text := 'UPDATE TABLE1 SET COLUMN2 = :COLUMN2 WHERE COLUMN1 = :COLUMN1 ';
Qry.Params[0].DataType := ftInteger;
Qry.Params[1].DataType := ftString;
Qry.Params.ValueCount := 2;
...
Qry.Execute(Qry.Params.ValueCount);
But this code throws an EMySqlException.
Qry.SQL.Text := ' UPDATE TABLE1 SET COLUMN2 = :COLUMN2 WHERE COLUMN1 = :COLUMN1 ';
---------------------// insert space!!
Here is error message
Code: Select all
#42000 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?1 WHERE COLUMN1 = ?'0000003302;UPDATE TABLE1 SET COLUMN2 = ?1 WHERE COLUMN1 = ?' at line 1'.