- Details
- Written by: Stanko Milosev
- Category: dbExpress
- Hits: 6649
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: 6494
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: 6532
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: 6051