帮帮忙!我不会的小问题!谢谢了!!

CBASE 2003-10-22 04:31:49
我的存储过程在vb中执行时,提示如下错误“p附近有语法错误!”如果将pz_dj_date<='+@date2 部分隐掉,就不出错,为什末?请指教!!

存储过程如下:
CREATE PROCEDURE mm
@data char(100),
@area char(10),
@date1 char(20),
@date2 char(20),
@nian int
as
declare
@sql varchar (200)
set @sql='select * FROM '+@data+'..p_zl_zhenliao where a_code =' +@area+' and pz_dj_date>='+@date1+' and pz_dj_date<='+@date2
EXECUTE (@sql)
GO
...全文
20 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CBASE 2003-10-22
  • 打赏
  • 举报
回复
各位大哥各位大姐,帮帮忙呀!!
CBASE 2003-10-22
  • 打赏
  • 举报
回复
1、改为 pz_dj_date<='+ @date2 +'' 之后,还是报错。
2、加"'"后改为set @sql='select * FROM '+@data+'..p_zl_zhenliao where a_code =' +@area+' and pz_dj_date>=''+@date1+'' and pz_dj_date<=''+@date2+'''还是提示错误。
到底错误出在何处,请指教!
我主要想用变量data传递数据库的名称,所以将sql语句写成这样。如果写成如下:
select * FROM st..p_zl_zhenliao where pz_dj_date<= @date1 and pz_dj_date>= @date2 and a_code =@area
然后执行mm而不是执行@sql 就不会报错,但是数据库的名称固定为st,不能动态变,
如果这样写,如何让数据库名称动态变化?请赐教!!!
射天狼 2003-10-22
  • 打赏
  • 举报
回复
报错是你写错了~~~~~
yoki 2003-10-22
  • 打赏
  • 举报
回复
pz_dj_date<='+@date2
改为:
pz_dj_date<='+ @date2 +''
lyjlee 2003-10-22
  • 打赏
  • 举报
回复
@sql varchar (200)
set @sql='select * FROM '+@data+'..p_zl_zhenliao where a_code =' +@area+' and pz_dj_date>='+@date1+' and pz_dj_date<='+@date2

最后面少了单引号“‘”
intersun 2003-10-22
  • 打赏
  • 举报
回复
SQL语句中有单引号,有时就会报错。
射天狼 2003-10-22
  • 打赏
  • 举报
回复
日期要用单引号括起来~~

1,216

社区成员

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

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