在MSSQL中的存储过程可以执行,但到了数据窗口却不能用?

liaolwj 2004-07-05 02:52:54
一个存储过程:
CREATE PROCEDURE p_test
@as_begdate varchar(10),
@as_enddate varchar(10),
@as_flag varchar(1)
AS
set nocount on
declare @ls_date datetime

select @ls_date = @as_begdate

Create Table #temp(
cdate datetime null,
csrbc numeric(20,6) not null default 0,
csrwx numeric(20,6) not null default 0,
cfsbc numeric(20,6) not null default 0,
cfswx numeric(20,6) not null default 0
)

select * from #temp
drop table #temp
set nocount off


然后在分析器里是可以的
EXECUTE p_test '2004-01-01','2004-02-01','1'

但到了数据窗口就出错了
cannot create datawindow
'从字符串转换为datetime时发生语法错误
1 execute dbo.p_test;@......(参数)


可是我将select @ls_date = @as_begdate注销后就可以了
如果是用转换的话我都试过好多了
select @ls_date = convert(datetime,@as_begdate)
可是还是一样
比较急,问题解决就结帖。
谢谢
...全文
270 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
geomis 2004-07-06
  • 打赏
  • 举报
回复
你用的是什么数据库.
liaolwj 2004-07-06
  • 打赏
  • 举报
回复
to swordmanli(太白)
好的,就是按照你的说的搞定了
可能是PB本身的问题
也谢谢各位的回答
结帖
mittee 2004-07-05
  • 打赏
  • 举报
回复
请先这样尝试以下:
declare my_pro for PROCEDURE p_test
@as_begdate =:ls_1,
@as_enddate =:ls_2,
@as_flag =:ls_3;

execute my_pro;
看看有没有结果
swordmanli 2004-07-05
  • 打赏
  • 举报
回复
你建datawindow的时候,使用手工结果集,不要使用自动结果集,pb可能没有读懂你这段程序,所以在生成的时候出错了
zxjnew 2004-07-05
  • 打赏
  • 举报
回复
调用存储过程前先写个sqlca.autocommit = true 再试试!!
liaolwj 2004-07-05
  • 打赏
  • 举报
回复
up
liaolwj 2004-07-05
  • 打赏
  • 举报
回复
不知道有什么办法没有,急啊
谢谢
  • 打赏
  • 举报
回复
我也遇到过类似的问题,我先用的是ASA数据库完全要得,后来我用SQL数据库换一下就要不得了,我的有个字段名叫 SET 用 SQL 的数据库生成数据窗口时它说 SET 附近有语法错误,该了半天都道不对.后来还是又换成了 ASA 就要得了!
liaolwj 2004-07-05
  • 打赏
  • 举报
回复
to waterloocsdn(由鱼)
一样的,我用datetime作为传入参数呢,我后面的一个处理
select col into @ls_col where cdate = @enddate
同样也出错啊
to swordmanli(太白)
你说的我试过了,你看我上面说的,可是还出错

各位,帮帮忙,比较急
swordmanli 2004-07-05
  • 打赏
  • 举报
回复
select @ls_date = convert(datetime, @as_begdate)
waterloocsdn 2004-07-05
  • 打赏
  • 举报
回复
为什么不把@as_begdate 定义为datetime

609

社区成员

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

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