[fpc-pascal] TBufDataSet: ApplyUpdates

Marcos Douglas md at delfire.net
Thu May 3 15:40:29 CEST 2012


On Thu, May 3, 2012 at 10:01 AM, LacaK <lacak at zoznam.sk> wrote:
> Marcos Douglas  wrote / napísal(a):
>
> On Thu, May 3, 2012 at 2:52 AM, LacaK <lacak at 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?

Marcos Douglas



More information about the fpc-pascal mailing list