On 03.05.2012 15:40, Marcos Douglas wrote:
On Thu, May 3, 2012 at 10:01 AM, LacaK<la...@zoznam.sk> wrote:
Marcos Douglas wrote / napĂsal(a):
On Thu, May 3, 2012 at 2:52 AM, LacaK<la...@zoznam.sk> wrote:
I saw the TBufDataSet.ApplyUpdates and it calls ApplyRecUpdate.
The ApplyRecUpdate just raises an exception...
Yes it is virtual method, which can be overriden by descendants
There is some implementation, in some place, to work with ApplyUpdates
(like a Delphi's TClientDataSet)?
Yes, see in sqldb.pp at TCustomSQLQuery
Yeah... I did not know that the TCustomSQLQuery descended of
TCustomBufDataSet.
Well, I tried to use ApplyUpdates with TSQLQuery and TMSSQLConnection
(SQLServer).
I put a DBGrid, DataSource... blablabla... I edited the record on the
Grid and click in Apply button (ApplyUpdates(0))
ERROR 20019:
"Attempt to initiate a new SQL Server operation with results pending."
On the internet I found this:
http://www.sybase.com.br/detail?id=897#1825
I don't have other SGBD now to test so, I would like to know if this
is a problem in TMSSQLConnection or in ApplyUpdates?
Yes it is a known problem (also in ODBC), read also in
sqldb/mssql/readme.txt:
- DB-Library error 10038 "Results Pending" - set TSQLQuery.PacketRecords=-1
to fetch all pendings rows
HTH
-Laco.
You're right, but I have others problems:
I changed PacketRecords=-1 and test again. No errors, but didn't
commited (I'm seeing the SQL Profiler).
So, I used:
SQLQuery1.ApplyUpdates(0);
SQLTransaction1.Commit;
Worked, using Commit, but the DataSet was closed (?)
The SQLQuery properties are:
UpdateMode = upWhereKeyOnly
UsePrimaryKeyAsKey = True
Maybe there is no problem and I just have to know how the SQLdb works.
Could you help me on this?
If you don't want the dataset closed then you must use CommitRetaining
(or RollbackRetaining for Rollback).
Regards,
Sven
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal