2010-01-13 101 views
0

我在Sybase數據庫中存儲了過程MySPOld。我創建了新的MySP。這個新的sp在從Sybase Sql Advantage執行時返回數據。但從VBA調用時不返回數據 - Excel 2003(記錄集的EOF屬性爲True)。這裏是我的代碼..如果從VBA執行,存儲過程不返回數據

Dim dbCon As ADODB.Connection 
Dim rstTemp As New ADODB.Recordset 
Dim query As String 
query = "exec MySP '01/01/2010', '01/14/2010'" 
dbCon.Open connectionString, "username" "password" 
dbCon.CommandTimeout = 300 
rstTemp.Open query, dbCon, adOpenForwardOnly 

該代碼運行良好與舊sp。 可能是什麼問題?任何想法 ?

在此先感謝。

+0

@Sam爲什麼不將@Adamh標記爲您接受的答案? – Fionnuala 2010-01-13 22:05:34

+0

對不起Remou,其實我不知道如何將答案標記爲「Accepted」。現在完成.. – Sambhaji 2010-01-15 13:07:40

回答

3

我假設它從isql或sql的優勢起作用很好!

您是否在新程序中的任何地方與null進行比較?我之前發現,與通過VBA或vbScript相比,「if @var = null」這樣的語句在從isql等調用時的行爲有所不同。如果你有這樣的事情,只需將它改爲「if @var is null」,它就可以工作。

+0

非常非常感謝亞當。有效。我花了一整天的時間來弄清楚這個問題。即使花費了更多,我也不會得到解決方案......很奇怪,當從VBA調用SP時,空值處理是不同的。一般來說,當我們編寫SP時,我們不會考慮前端應用程序。無論如何,再次感謝! ! ! – Sambhaji 2010-01-13 12:22:00

+0

@Sam爲什麼不將@Adamh標記爲您接受的答案? – Fionnuala 2010-01-13 14:03:48

+0

很高興爲你工作,我從來沒有打擾過,試圖找出究竟爲什麼一旦我找到答案。 如果你高興的話,將答案標記爲答案,這就是答案 - 那麼我可以得到一些急需的分數! :) – AdamH 2010-01-13 14:10:10

相關問題