关于存储过程传参

watarno 2004-08-11 07:19:57
我得存储过程如下
create proc test
@parat1 varchar(10)
as
select * from t
where convert(varchar(10),crdate,120)=@parat1
go

在SQL查询分析器中用 exec test '2004-08-07'可以得到记录
但是在vb中,用
cmd.CommandText = "{call test(?)}"
cmd.Parameters.Append cmd.CreateParameter("@parat1", adBSTR, adParamInput, 8)
cmd("@parat1") = Text1.Text
Set rs = New ADODB.Recordset
If rs.State = 1 Then
rs.Close
End If
Set rs = cmd.Execute()
确得不到记录,这是怎么回事?
...全文
142 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
TNT1900 2004-08-12
  • 打赏
  • 举报
回复
在ORACLE里,日期前后要用“#”包括起来。它才能认。
SQL SERVER和ACCESS则不用。
mjun007 2004-08-12
  • 打赏
  • 举报
回复
DataEnvironment1.Commands("Command1").Parameters(1).Value =#2004-08-07#
Parameters参数里是index即数字,在数据环境里看date1是第几个参数就添一下就可以了。
watarno 2004-08-11
  • 打赏
  • 举报
回复
可能第一次用vb,才不到一周,写的代码比较丑吧,所以你看起来比较的陌生!呵呵
DataEnvironment1.Commands("Command1").Parameters("@date1").Value ="2004-08-07"
DataReportDay.Show
这个参数@date1的值传不进去,如果不要这句代码
DataEnvironment1.Commands("Command1").Parameters("@date1").Value ="2004-08-07"
直接使用DataReportDay.Show可以显示打印的,我设置的默认值也是2004-08-07,现在想传递参数,怎么都搞不定,郁闷!
cheng0733 2004-08-11
  • 打赏
  • 举报
回复
DataEnvironment1.Commands("Command1").Parameters("@date1").Value = vba.cdate("2004-08-07")
这样了
csdnchenxu 2004-08-11
  • 打赏
  • 举报
回复
楼主的代码我好陌生啊

我一般自己写函数 ConnetMDB(Byval MDBPATH as string, Byval strsql as string,
ByRef rs as adodb.recordset)

rs!
watarno 2004-08-11
  • 打赏
  • 举报
回复
你告诉我
DataEnvironment1.Commands("Command1").Parameters("@date1").Value = "2004-08-07"
这句话的正确应该怎样赋值,我马上就给你!
frankwong 2004-08-11
  • 打赏
  • 举报
回复
自己知错就要结贴!接分!
watarno 2004-08-11
  • 打赏
  • 举报
回复
我自己写错了

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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