Private Sub Command1_Click()
Dim iCmd As ADODB.Command
Set iCmd = New ADODB.Command
Set Res = New ADODB.Recordset
If con.State = 1 Then
con.Close
End If
con.Open ConnStr
con.CursorLocation = adUseClient
With iCmd
.ActiveConnection = ConnStr 数据库连接字符串
.CommandType = adCmdStoredProc
.CommandText = "Proc_sydw_SEARCH"
.Parameters.Refresh 创建存储过程参数
.Parameters("@keyword") = Trim(Me.Txt_KeyWord)
.Parameters("@kind") = 1
Set Res = .Execute 执行存储过程
End With
Me.Ado_CX.ConnectionString = ConnStr
Me.Ado_CX.CommandType = adCmdUnknown
Me.Ado_CX.Recordset = Res
Me.Ado_CX.Refresh
Set Me.DG_CX.DataSource = Nothing
Set Me.DG_CX.DataSource = Me.Ado_CX.Recordset
con.Close
Set con = Nothing
End Sub
这样写是错的。我想把返回的res集合绑定到ADO控件的数据源,该怎么写呢,用ado_cx.recordsource
=Proc_sydw_SEARCH,也不行,因为要传递参数。高手请帮忙看下,不会的也请帮顶。
這樣調用存儲過程太難了,直接 這樣不就可以了麼?
................
Screen.MousePointer = 11
cnConn.CommandTimeout = 10800 3­Ó¤p®É
cnConn.Open connectstr
2005-01-08¡A¥úÑÔ­û¤u¥H¨ú´Ú¤è¦¡¦©°£®ø¶O
TRUNCATE TABLE dbo.dinner_person_balance
strSql = " EXEC dbo.procDeductConsume_ks NULL,-1," & person_no
rsConsume.Open strSql, cnConn, adOpenDynamic, adLockOptimistic
Screen.MousePointer = 0
给个样子(从建立连接后)
:
dim m_cmd as new ADODB.Command
dim m_rs as new ADODB.Recordset
with m_cmd
.ActiveConnection=con
.CommandType = adCmdStoredProc
.CommandText = "Proc_sydw_SEARCH"
.Parameters.Append .CreateParameter("@keyword", advarchar, ,50 , Trim(Me.Txt_KeyWord))
.Parameters.Append .CreateParameter("@kind", adbigint, , , 1)
If m_rs.State = adStateOpen Then m_rs.Close
Call m_rs.Open(m_cmd, , adOpenStatic, adLockBatchOptimistic)
end with
Set Me.DG_CX.DataSource = m_rs