2011-01-21 59 views
0

我必須支持經典的asp系統(grrr),它根據proc中的最終選擇順序從存儲過程中返回空值。 我正在設法通過擺動選擇順序來解決這個問題,直到我找到一個適用於每個領域的工作......不幸的是,現在它已決定在不同的機器上以不同的方式工作。經典的asp ado存儲過程根據選擇順序刪除字段

相當基本的asp:

' ORDER ITEMS 
sSQL = "ProcName " & Order_ID 

Dim iRowCount : iRowCount = 0 
set objConn = Server.CreateObject("ADODB.Connection") 
objConn.Open Application("admin_ConnectionString") 

set rs = objConn.execute(sSQL) 

if not rs.eof then 
    ' Just doing this set thing to try and stop stupid ADO dropping fields !! 
    ' The final select in the proc decides whether things will appear or disappear... 
    set iQtyRequired = rs("QuantityRequired") 

do until rs.eof 
    iQtyOutstanding = iQtyRequired - iQtyFulfilled 

SQL擁有的,光標和最後一個公正的處理量的選擇:

SELECT DispatchDate, ProposedDispatchQty, ... 
FROM @OrderItems  

如果我改變選擇,不同將字段的順序「從ado中消失「 - 它們仍然存在於.net和sql管理工作室中。我無法得到任何一致性,哪一個導致它,似乎很多,我會嘗試20種不同的組合,得到20套不同的空白。

我猜ado會在裏面靜靜地吹起某個地方(可能是日期處理?)。任何人都有什麼好的建議來獲得一致性? (除了在C#重寫它)提前

乾杯 - 巴蒂爾:)

+0

你能澄清:你可以改變PROC返回0,而不是空值?爲什麼不檢查字段是否爲空:if not not isnull(rs(「QuantityRequired」))then ... – 2011-01-21 12:03:16

+0

我認爲你錯過了一點 - 那裏有數據(profile sql - 在mgmt studio中運行)但後來它被丟棄了。 – sparau 2011-01-23 23:16:17

回答