Adodb.command 的用法

wlm721 2004-06-14 12:34:02
我的程序如下
Private Sub Command1_Click()
Dim cmm As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim srtsql As String
Dim bmbh As String
bmbh = Adodc1.Recordset.Fields("bmbh").Value
cmm.CommandText = "sp_cxygxx1"
cmm.CommandType = adCmdStoredProc
Set cmm.ActiveConnection = conn
cmm.Parameters.Append cmm.CreateParameter("bmlx", adVarChar, adParamInput, 2, bmbh)
cmm.Parameters.Append cmm.CreateParameter("ygbh", adVarChar, adParamInput, 2, Text1.Text)
'rs.Open "select * from tbal1", conn, 1, 1 如果用查询语句能查出,可是用set =cmm.execute()就出错
Set rs = cmm.Execute()
MsgBox rs.RecordCount //这里的recordcount为-1,为什么?
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
End Sub
...全文
547 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Baalwhat 2004-06-15
  • 打赏
  • 举报
回复
恩是啊
online 2004-06-14
  • 打赏
  • 举报
回复
MsgBox rs.RecordCount //这里的recordcount为-1,为什么?
mConn.CursorLocation = adUseClient '设置为客户端
online 2004-06-14
  • 打赏
  • 举报
回复
存储过程
CREATE PROCEDURE insert_users @truename char(20), @regname char(20),@pwd char(20),@sex char(20),@email char(20)
AS
insert into users(truename,regname,pwd,sex,email) values(@truename,@regname,@pwd,@sex,@email)
GO

CREATE PROCEDURE select_users
AS
select * from users
GO
online 2004-06-14
  • 打赏
  • 举报
回复

Option Explicit
Private mConn As Connection

Private Sub Command1_Click()
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Dim param As ADODB.Parameter

Set cmd = New ADODB.Command
cmd.ActiveConnection = mConn
cmd.CommandText = "insert_users"
cmd.CommandType = adCmdStoredProc

Set param = cmd.CreateParameter("truename", adChar, adParamInput, 20, Trim(txttruename.Text))
cmd.Parameters.Append param

Set param = cmd.CreateParameter("regname", adChar, adParamInput, 20, Trim(txtregname.Text))
cmd.Parameters.Append param

Set param = cmd.CreateParameter("pwd", adChar, adParamInput, 20, Trim(txtpwd.Text))
cmd.Parameters.Append param

Set param = cmd.CreateParameter("sex", adChar, adParamInput, 20, Trim(txtsex.Text))
cmd.Parameters.Append param

Set param = cmd.CreateParameter("email", adChar, adParamInput, 20, Trim(txtemail.Text))
cmd.Parameters.Append param

Set rs = cmd.Execute

Command2_Click

End Sub

Private Sub Command2_Click()
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Dim param As ADODB.Parameter

Set rs = New ADODB.Recordset
Set cmd = New ADODB.Command
cmd.ActiveConnection = mConn
cmd.CommandText = "select_users"
cmd.CommandType = adCmdStoredProc

mConn.CursorLocation = adUseClient '设置为客户端

Set rs = cmd.Execute()

MsgBox rs.RecordCount
Set DataGrid1.DataSource = rs
DataGrid1.Refresh

End Sub

Private Sub Form_Load()
'open the connection
Set mConn = New Connection

mConn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=yang"
mConn.Open
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "users", mConn, adOpenStatic, adLockPessimistic

' MsgBox rs.RecordCount

End Sub



Private Sub Form_Unload(Cancel As Integer)

mConn.Close
Set mConn = Nothing
End Sub

ryuginka 2004-06-14
  • 打赏
  • 举报
回复
up
easydone 2004-06-14
  • 打赏
  • 举报
回复
mConn.CursorLocation = adUseClient
客户端游标才能获得recordcount
accp258 2004-06-14
  • 打赏
  • 举报
回复
游标的位置要放在客户端,默认时是放在服务端的。

7,764

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧