SQL Server returns different record after insert on linked MS Access table -


we upgraded our backend database sql server 2000 sql server 2008. since switch we've had intermittent (read: impossible consistently reproduce) , strange problems, seem related somehow.

in 1 case, our users add new record table via bound form. as record saved, different (much older) record displayed in place. pressing shift+f9 force requery of form brings newly added record (the form filtered show single record).

we have managed isolate specific instance of problem based on logging occurs on different form. in beforeupdate event of form timestamp correctly filled in on record being inserted. in afterupdate event of same form history record created in table includes autonumber id of first table. about 1 in 10 of these history records created wrong autonumber id.

has witnessed sort of behavior or have explanation it?

edit: additional thoughts:

  • the backend database part of merge replication
  • the access front-end versions 2000 , 2002 (other versions not tested)
  • one post read suggested access uses @@identity behind scenes newly added record sql server
  • the problem occurs using both {sql server} odbc driver , {sql server native client 10.0} odbc driver connect backend table
  • compatibility level set 80 (sql server 2000 level compatibility)

edit: sql profiler trace results:

i ran sql profiler , confirmed access indeed using select @@identity behind scenes return newly inserted record. confirmed happening ms access 2000, 2002 (xp), , 2007 front-ends. happening whether tables linked using {sql server} odbc driver or {sql server native client 10.0} odbc driver.

i should emphasize access using select @@identity behind scenes. far know there no way force access use scope_identity. bad, though, because seems simplest fix.

a bit of looking around (mostly off link included "more" garik), shows you're stuck behavior--it's access/sql server communication bug. however, there's workaround described @ this link.

it's way complicated me reproduce in detail, , very explained there, basicly save @@identity variable @ start trigger, phony #temp insert spoof value want returned @ end.


Comments

Popular posts from this blog

c# - how to write client side events functions for the combobox items -

exception - Python, pyPdf OCR error: pyPdf.utils.PdfReadError: EOF marker not found -