I have waited for you to review the test cases that I have sent to you
(one using Sql Provider,  the other one using Fb Provider) but no news.

Please read

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=933212&SiteID=1

where Zlatko Michailov - MSFT confirmed that AcceptChanges() is called after step 3


Zlatko Michailov - MSFT has marked the following post as an answer to your question on the forums.

     Re: SqlDataAdapter

The fact that AcceptChanges() is called after step 3 is expressed here:

First, the AcceptChanges method of the DataRow is called to preserve the current values as original values, and then the new values are assigned. Following these actions, DataRows that had their RowState property set to Added will have their RowState property set to Modified, which may be unexpected.





If this is not the answer to your question you can unmark the answer by clicking "unmark as answer" on the following page: http://forums.microsoft.com/forums/ShowPost.aspx?PostID=975522&SiteID=1

     Post Marked as Answered

----- Original Message ----- From: "Carlos Guzmán Álvarez" <[EMAIL PROTECTED]> To: "For users and developers of the Firebird .NET providers" <[email protected]>
Sent: Saturday, November 18, 2006 5:21 PM
Subject: Re: [Firebird-net-provider] FbDataAdapter problem


Hello:

What I do not understand is why you don't provide the same
functionality if you can, why don't you use Microsoft default
implementation (I ask this but I get an answer that did not convince
me at all).

I have given you the answer yet, but i will retry, the ms implementation
does calls using ExecuteReader in some cases, and that is not valid in
the provider when using stored procedures the actual Update
implementation makes all the calls using ExecuteNonQuery to allow the
stored procedure calls work always with independence of the sp syntax
you are using.

And in fact that is not my problem. This problem is everywhere. It's
where you have identity columns, where you have generators. It's
described and supported by Microsoft. FbProvider is a piece of code
that is to be integrated in their ADO.NET environment, isn't it ?

Have you tried using Firebird 2.0 and the new INSERT INTO ... RETURNING
syntax or using stored procedres that returns the new row ID in an
output parameter ( i haven't checked yet the test case with the
comparison against sql server, hope i will be able to review it next
week ). ???

and where Microsoft says: "First, the AcceptChanges
method of the DataRow is called to preserve the current values as
original
values, and then the new values are assigned."

I will try to review it, right now the provider does this as explained
in the DbDataAdapter.Update msdn documentation:

"When using *Update*, the order of execution is as follows:

  1.

     The values in the *DataRow* are moved to the parameter values.

  2.

     The OnRowUpdating
     <M_System_Data_Common_DbDataAdapter_OnRowUpdating_1_6ff1b747.htm>
     event is raised.

  3.

     The command executes.

  4.

     If the command is set to *FirstReturnedRecord*, then the first
     returned result is placed in the *DataRow*.

  5.

     If there are output parameters, they are placed in the *DataRow*.

  6.

     The *OnRowUpdated* event is raised.

  7.

     AcceptChanges <M_System_Data_DataRow_AcceptChanges.htm> is called."


What i have modified in the CVS sources for the step 7 is to check the
value of AcceptChangesDuringUpdate before calling AcceptChanges
<M_System_Data_DataRow_AcceptChanges.htm>.

The step 4 does not apply to the Firebird provider because there are no
support for batch commands and because the execution is done using
ExecuteNonQuery calls.


--
Carlos Guzmán Álvarez
Vigo-Spain

http://carlosga.wordpress.com

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Firebird-net-provider mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

<<attachment: msdn_1inch_rgb.jpg>>

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Firebird-net-provider mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

Reply via email to