ADODB Conn和Recordsets出错

时间:2015-07-08 18:15:09

标签: vb.net adodb recordset

我收到此错误:" 无法更改具有Command对象作为其源的Recordset对象的ActiveConnection属性。"什么时候打开一个记录集。我应该注意的一件事:当它被编写为内联SQL时,此过程有效,但由于显而易见的原因被删除。

我已经阅读过该设置' nocount on'我正在使用的存储过程会解决这个问题,但事实并非如此。所以,希望你们大家可以帮助我。

以下是初始化的连接:

Dim objConn As ADODB.Connection
sConn = System.Configuration.ConfigurationManager.ConnectionStrings("ConnString").ConnectionString()
    objConn = CreateObject("ADODB.Connection")
    objConn.ConnectionString = sConn
    objConn.CursorLocation = ADODB.CursorLocationEnum.adUseServer
    objConn.Open(sConn)

然后:

cmd = New ADODB.Command()
cmd.ActiveConnection = objConn

cmd.CommandText = "someProc"
cmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
cmd.NamedParameters = True

cmd.Parameters.Append(cmd.CreateParameter("SomeID", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamInput, 20, params("SomeID")))

objRec = New ADODB.Recordset()
objRec.Open(cmd, objConn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)

以前有人经历过吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

我在相当长一段时间内没有使用过ADO(当然从未在.NET中使用过),所以这是一个猜测,但objRec.Open来自Nothing

  

如果在Source参数中传递Command对象并传递一个   ActiveConnection参数,发生错误。 ActiveConnection   必须已将Command对象的属性设置为有效   连接对象或连接字符串。

因此,听起来您的问题是您正在将连接传递到objRec.Open(cmd, , ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic) 来电。由于该参数是可选的,请尝试不传递它。我不确定您是否通过了objRec.Open(cmd, Nothing, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic) 或只是省略了参数,请尝试:

DOCUMENT_ROOT/.htaccess

如果它不是那样的话,试试:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?((?!www\.)[^.]+)\.(website\.co\.uk)$ [NC]
RewriteRule ^/?$ http://www.%2/city/%1 [R=302,L]