- Details
- Written by: Stanko Milosev
- Category: dbExpress
- Hits: 6053
If you are receiving error: "Commands out of sync; you can't run this command now" in dbExpress / MySQL connection, then check your query, probably it's something wrong...
Also, with connection to MySQL you can't do "select" SQL statement inside transaction, for example:
var DBXTran: TDBXTransaction; begin sql1.Close; sql1.SQL.Clear; sql1.SQL.Text := 'select * from table_one'; sql1.Open; cds2.Open; try DBXTran := connnection1.BeginTransaction; cds2.Append; cds2.FieldByName('MyField').AsString := 'test'; cds2.Post; cds2.ApplyUpdates(0); connnection1.CommitFreeAndNil(DBXTran); finally connnection1.RollbackIncompleteFreeAndNil(DBXTran); end;
Will be ok, while:
var DBXTran: TDBXTransaction; begin cds2.Open; try DBXTran := connnection1.BeginTransaction; sql1.Close; sql1.SQL.Clear; sql1.SQL.Text := 'select * from table_one'; sql1.Open; cds2.Append; cds2.FieldByName('MyField').AsString := 'test'; cds2.Post; cds2.ApplyUpdates(0); connnection1.CommitFreeAndNil(DBXTran); finally connnection1.RollbackIncompleteFreeAndNil(DBXTran); end;
Will give you the error...
- Details
- Written by: Stanko Milosev
- Category: dbExpress
- Hits: 5992
If you tried something like:
with cds1.Params do begin ParamByName('finish').AsDateTime := now; ParamByName('start').AsDateTime := Now-1; end; cds1.Open
And you received error like: DBX Error - ParameterNotSet then don't use AsDateTime, use AsSQLTimeStamp := DateTimeToSQLTimeStamp(Now-1);, so your code should look like:
with cds1.Params do begin ParamByName('finish').AsSQLTimeStamp := DateTimeToSQLTimeStamp(now); ParamByName('start').AsDateTime := DateTimeToSQLTimeStamp(Now-1); end; cds1.Open
- Details
- Written by: Stanko Milosev
- Category: dbExpress
- Hits: 6031
If you added DBXDynalink to your uses list, deployed:
dbxconnections.ini
dbxdrivers.ini
dbexpsda40.dll
Tried everything what is described here.
Then, try also:
ConnectionName = 'MYSQLCONNECTION'
DriverName = 'MySQL'
GetDriverFunc = 'getSQLDriverMYSQL'
LibraryName = 'dbexpmda.dll'
VendorLib = 'libmysql.dll'
- Details
- Written by: Stanko Milosev
- Category: dbExpress
- Hits: 5552