逐渐将应用程序从经典.asp转换为.aspx,并且一直停留在检查数据库连接上。第一部分代码在我的.asp应用程序中工作正常;
<%' use this meta tag instead of adovbs.inc %>
<!--METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4" -->
' SQL database connection and result sets
Dim hSQLOne, RSQueryOne, SQLQuery
On Error Resume Next
Set hSQLOne = Server.CreateObject("ADODB.Connection")
hSQLOne.Open EMSGSRC
If hSQLOne.State = adStateOpen then
nSQLconnected = 1
Processing...
但当我把它转换成像这样的.aspx时;
<%' use this meta tag instead of adovbs.inc %>
<!--METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4" -->
' SQL database connection and result sets
Dim hSQLOne As ADODB.Connection
Dim RSQueryOne As ADODB.Recordset
Dim SQLQuery As String
On Error Resume Next
hSQLOne = New ADODB.Connection
hSQLOne.Open (EMSGSRC)
If hSQLOne.State = adStateOpen Then
nSQLconnected = 1
Processing...
我收到此错误;
编译器错误消息:BC30451:名称&#39; adStateOpen&#39;没有宣布。
好的,公平地说,尝试删除METADATA标记,只是像这样在应用程序中声明连接状态常量;
'---- ObjectStateEnum Values ----
Const adStateClosed As Short = &H0s
Const adStateOpen As Short = &H1s
Const adStateConnecting As Short = &H2s
Const adStateExecuting As Short = &H4s
Const adStateFetching As Short = &H8s
但是&#34;如果hSQLOne.State = adStateOpen那么&#34; 不匹配,所以它没有做任何事情。
此处必须声明错误或未正确检查状态。
任何帮助表示赞赏....
第二天@Raybarg Check if ADODB connection is open的这篇文章解决了它!
If (hSQLOne.State And adStateOpen) = adStateOpen Then
nSQLconnected = 1
And do the stuff I want to do...