在存储过程开始加上:set nocount on 试试 另外,向存储过程传参数时,把左右的空格除去试试
CREATE PROCEDURE product_pro( @company varchar(20) ) AS select * from product where @company<>'1'
CREATE PROCEDURE product_pro( @company varchar(20) ) AS select * from product where @company<>'1' or @company is not null GO
不是if错了,是<>'1'不能判断null你要该为:CREATE PROCEDURE product_pro( @company varchar(20) ) AS if @company<>'1' or @company is null begin select * from product end GO
刚发现另一个问题,就是改变代码如下同样不能正常读取记录数:CREATE PROCEDURE stream_pro( @company varchar(20) ) AS declare @sql nvarchar(1000) set @sql='select * from stream_apply' EXEC(@sql) GO
pengdali(大力 V2.0),你测试过么?不可行啊
rs.open "execute product_pro '11'",conn,1,1
djhai(不胜寒) 这个也不可能行得通啊
不是吧,你是在Asp.net上调用的把,你吧Cusor改为客户邮标就可以了
在打开服务器连接之前,设置: rs.CursorLocation = adUseClient 同意 zjcxc(邹建) 不过在服务器联机之前还是连接之后都可以,我已经测试过了代码 Dim cnn As New ADODB.Connection Dim cmd As New ADODB.Command Dim rs As New ADODB.Recordset Dim cnnstr As String Dim str As String cnnstr "Provider=SQLOLEDB.1;server=server;uid=sa;pwd=;database=northwind" cnn.Open (cnnstr) cmd.CommandType = adCmdStoredProc cmd.CommandText = aa Set cmd.ActiveConnection = cnn rs.CursorLocation = adUseClient cnn.aa rs MsgBox rs.RecordCountok我测试过的
另外,向存储过程传参数时,把左右的空格除去试试
@company varchar(20)
)
AS
select * from product where @company<>'1'
@company varchar(20)
)
AS
select * from product where @company<>'1' or @company is not null
GO
@company varchar(20)
)
AS
if @company<>'1' or @company is null
begin
select * from product
end
GO
@company varchar(20)
)
AS
declare @sql nvarchar(1000)
set @sql='select * from stream_apply'
EXEC(@sql)
GO
rs.CursorLocation = adUseClient
同意 zjcxc(邹建)
不过在服务器联机之前还是连接之后都可以,我已经测试过了代码
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim cnnstr As String
Dim str As String
cnnstr "Provider=SQLOLEDB.1;server=server;uid=sa;pwd=;database=northwind"
cnn.Open (cnnstr)
cmd.CommandType = adCmdStoredProc
cmd.CommandText = aa
Set cmd.ActiveConnection = cnn
rs.CursorLocation = adUseClient
cnn.aa rs
MsgBox rs.RecordCountok我测试过的
语言是:asp