2016-02-24 46 views
1

我使用Visual Studio來編輯我的經典ASP網站和智能感知和顏色編碼工作的大部分,即如果我鍵入「響應」。那麼它會彈出一個選項列表。經典ASP智能感知ADODB Visual Studio 2010

但是,當我使用聲明的對象類型,如; Set DB = Server.CreateObject(「ADODB.Connection」)

當我輸入「DB」時,我不再獲得智能感知選項。

當我使用MicroSoft Interdev(以前的版本)來編輯ASP文件時,我用它來獲取智能感知,並且它可以方便地找回它。

因此,我的問題是,有誰知道VS2010(或更高版本)的方式,我可以重新啓用服務器創建對象的智能感知?

非常感謝

馬特

+0

是所有COM對象還是ADODB問題?例如,嘗試設置msg = Server.CreateObject(「CDO.Message」)',並在鍵入「msg。」時查看是否獲得智能感知。我有一個雙啓動機器。在Windows 7上,我沒有獲得ADODB對象的智能感知,但是當我在Win 8中運行它時,我會這樣做。我懷疑答案在於哪個dll被註冊。三年前,我問了一個關於這個問題,它沒有回覆,最終被刪除。我也發現msdn上的這個線程沒有給出令人滿意的答案。 – John

+0

MSDN上的這個主題可能很有用,雖然沒有令人滿意的答案。 https://social.msdn.microsoft.com/Forums/en-US/73615acc-1cc0-4dfc-bcc1-f86a416de8a7/the-intellisense-does-not-work-for-any-adodb-objects-with-vs2008vs2010- in-windows-7?forum = vbide – John

回答

1

我使用VS2015和我的作品,但該文件必須有一個ASP擴展。它只能在Created對象的直接範圍內工作。

例如:

set command = CreateCommandWithParameters(Me.conn, parameterizedQuery, values) 
    Command.... 'no intellisense here because Server.CreateObject was called in a Function elsewhere 

但我獲得智能下面就好了。

Private Function CreateCommand(connection, query, commandType) 
    if (commandType <> adCmdText AND commandType <> adCmdTable AND commandType <> adCmdStoredProc AND commandType <> adCmdFile AND commandType <> adCmdTableDirect) then Err.Raise 16001, "Invalid Command Type", "Must be, adCmdText, adCmdTable, adCmdStoredProc, adCmdFile, adCmdTableDirect" 
    Set CreateCommand = Server.CreateObject("ADODB.Command") 
    Set CreateCommand.ActiveConnection = connection 
    CreateCommand.ActiveConnection = connection  
    CreateCommand.NamedParameters = true 
    CreateCommand.CommandText = query 
    CreateCommand.CommandType = commandType 
    CreateCommand.CommandTimeout = 120 '2 minutes....   
    CreateCommand.Prepared = true  
End Function 

這也可能是因爲我有在Global.asa

<!--METADATA TYPE="TypeLib" file="C:\Program Files (x86)\Common Files\System\ado\msado15.dll" --> 

進口最後要注意的類型庫,而它在某些情況下,上的Server.CreateObject工作.....它不適用於用戶定義的子類,類和函數...

我基本上已經習慣了沒有智能感知。 VBScript不區分大小寫,所以它沒有讓我感到困擾。

+1

好的,想出了另一件事。 Intellisense也可以在用戶定義的函數,類等上工作,但前提是它們是在正在編輯的頁面中定義的。視覺工作室編輯器不夠智能,無法在服務器端提供Intellisense,包括..... –

+0

非常感謝您的回覆。我嘗試在global.asa中使用TypeLib(檢查了dll的路徑),但我仍然無法使智能感知工作。是的,我也注意到VS沒有解決服務器端包含的問題,並從包含文件中獲取函數/子名稱。我會做更多的挖掘global.asa選項,因爲這似乎是最有可能成功的途徑。 –

+0

@RyanMann - 我不知道你是否還在使用SO,如果你能說出你正在使用的Windows版本。我的理論是,這個bug是特定於ADODB對象並且特定於Windows 7的。這可能會縮小到Win7 SP1 – John