经典ASP,SQL Server,Windows Azure,单选按钮更新设置命令 - 意外行为



我已经继承了一个经典的ASP应用程序,并迁移到Windows Azure,SQL和所有工作正常运行正常-Except-一个奇怪的问题,也许您会知道吗?

方案

通过匹配唯一的ID-与用户界面相匹配,选择数据顺序的行。每个"集"两行。一个已经以" y"为标记的" Masterselect"。ASP代码通过无线电按钮ONCLICK清除(或应该)两个记录中的两个字段,然后将新记录的字段设置为具有" Y"的" Y"。如果可以的话,请切换。

在(本地)和半路上的Azure上工作就像魅力一样。

**(local)** ('x' = choose radio button)
x #1 -->  'Y'
  #2 -->  ' '
  #1 -->  ' '
x #2 -->  'Y'
x #1 -->  'Y'
  #2 -->  ' '
**(Azure)**
x #1 -->  'Y'
  #2 -->  ' '
  #1 -->  'Y'  <--- (Should be blank)
x #2 -->  'Y'
x #1 -->  'Y'
  #2 -->  ' '

这是代码:

' If updating the master select field then need to clear all previous selects for that dupid
if updfield="masterselect" then
    strSQL = "select FileName,DupeID from OnLineContactsM where OnLineRecID=" & keyvalue
    cn.execute("exec insertactivity '','','ajaxUpdate.asp','" & strSQL & "'")
    set rs=cn.execute(strSQL)
    if not rs.eof then
        fn = rs("FileName")
        DID = rs("DupeID")
        strSQL = "update OnLineContactsM set MasterSelect='' where FileName like'" & fn & "' and DupeID='" & DID & "'"
        cn.execute(strSQL)
        'cn.execute("exec insertactivity '','','ajaxUpdate.asp','" & DID & "'")
    end if
end if 

远程位置上的行为是顶部行从不清除,但底部行总是按预期工作。而且,如果我手动手动运行代码的确切行,无论指向(local)或(远程)代码完美运行 - 在两个平台上运行?!?!?!?

我认为可能还有其他代码,而不是我提出的可能重置第一个记录,但是然后无法解释为什么(本地)副本没有表现出这种行为。换句话说,因为事情按预期工作,并且始终具有,直到 azure进入了我们是金色的图片。

所以,我的结论自然会导致我遇到与环境相关的原因,但是我的头显然比我的头脑更聪明。

我从各种角度(缓存,索引,代码比较等)中研究了这一点,并结论了错误,不兼容或与环境相关的问题。我几乎整天都没有任何确定的搜索。

有人会对可能导致行为差异的原因有任何建议吗?

tia !!!

要检查的东西:

  • db整理可能不同(情况敏感)
  • 某些DB配置可能会引入SET ARITHIGNORESET NOCOUNT
  • 等错误
  • 交易:也许Azure SQL添加了不投入的外部Transac