怎样用储存过程创建数据窗口

MINDNET 2004-08-27 10:22:54

create procedure proceemployee
@var char(10)
as
select code,name,ime,sex,age,isteacher,department
from employee
where code = @var
当没有参数时就成功,但加了'@var'参数之后就失败了
...全文
204 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
MINDNET 2004-09-07
  • 打赏
  • 举报
回复
不是呀
不是加参数前还是后的题
是一开始就建军不到
andyzq 2004-09-07
  • 打赏
  • 举报
回复
如果你的dw是在存储过程未加参数之前创建的,那么在存储过程加了参数之后要重新建立
dw才行(删了重建)
lzheng2001 2004-09-06
  • 打赏
  • 举报
回复
看来是你的PB的问题,它不能把参数传给SQL SERVER,建议重装PB,最好安装最新的补丁
MINDNET 2004-09-06
  • 打赏
  • 举报
回复
自已顶
MINDNET 2004-09-06
  • 打赏
  • 举报
回复
我是9。0哪有补丁呀
MINDNET 2004-09-05
  • 打赏
  • 举报
回复
TO lzheng2001(1加1=0
不行呀!试过了
(选中 MANUAL RESULT SET )
是可以做出数据窗口,但只要一检索就出错了
new->datawindow->store procedure->选择一个sp -> next -> ...->ready to create grid
datawindow
提示是:'SQLSTATE = 22005
Invalid character value for cast speicification
1 execute dbo.proceemployee;1 @var = :var'

我是用MSSQL的
22005 意思是:分配时出错,但我这个表只有char,varchar,int三个类型
各位大大请教了
我觉得我的PB 是不是有问题
还有就是 我用储存过程时是这样的
declare my_pro procedure for my_pro
:ls_member_id;
只有上面这样定义才可以用
declare my_pro procedure for my_pro
@member_id = :ls_member_id;
这样就不行了
为什么呀?我搞了很久了
prain2003 2004-08-29
  • 打赏
  • 举报
回复
为什么要用存储过程?
建议建立一个输出的临时表
把数据插入
最后
select * from #temp
lzheng2001 2004-08-29
  • 打赏
  • 举报
回复
能说说是什么错误信息吗?
试试这样应该可以:
选中 MANUAL RESULT SET
自己加列名及列的类型, 列的类型及长度要以SP返回的结果集一致.
MINDNET 2004-08-28
  • 打赏
  • 举报
回复
在数据库的查询编辑器可以呀

exec proceemployee @var = ''没结果
exec proceemployee @var = '0001'一个记录
如果SP没有参数就不会出错,但我想DW有个检索参数
不是我的PB有问题吧
zm1616 2004-08-28
  • 打赏
  • 举报
回复
你单独在数据库的查询编辑器里执行存储过程可以吗
exec proceemployee @var = ''

你的code字段是char(10)的吗?
MINDNET 2004-08-28
  • 打赏
  • 举报
回复
TO zm1616(拳皇77)
做是做出来的
但一输入检索参数后在检索时又是这个错误信息
zm1616 2004-08-28
  • 打赏
  • 举报
回复
哦,那你选择MANUAL RESULT SET 这个吧,然后按照你的存储过程返回结果的字段数,定义几个外部数据源的字段,(类型要和存储过程返回的结果的字段类型长度一样)
MINDNET 2004-08-28
  • 打赏
  • 举报
回复
TO zm1616(拳皇77
没有加参数呀选了SP后就一直NEXT了 那个MANUAL RESULT SET 也没有选中呀
zm1616 2004-08-28
  • 打赏
  • 举报
回复
看你的错误报告,好象你在生成DW选择存储过程后,还定义了参数?
存储过程中如果有参数,那么通过存储过程生成DW的时候不需要再定义参数了,PB本身会根据存储过程的参数生成一个参数
MINDNET 2004-08-28
  • 打赏
  • 举报
回复
不行呀
参数定义成varchar(10)也是同样的错误
new->datawindow->store procedure->选择一个sp -> next -> ...->ready to create grid
datawindow
提示是:'SQLSTATE = 22005
Invalid character value for cast speicification
1 execute dbo.proceemployee;1 @var = :var'

我是用MSSQL的
22005 意思是:分配时出错,但我这个表只有char,varchar,int三个类型
各位大大请教了
jackxrh 2004-08-28
  • 打赏
  • 举报
回复
定义成varchar(10)
MINDNET 2004-08-28
  • 打赏
  • 举报
回复
自已顶
zm1616 2004-08-28
  • 打赏
  • 举报
回复
应该不关参数的问题吧,我的存储过程几乎都带参数,都可以生成 DW啊,
生成DW的方法和楼上一样,不过并不用给存储过程的参数赋初始值都可以生成的
MINDNET 2004-08-28
  • 打赏
  • 举报
回复
TO lzheng2001(1加1=0)
我的SP是这样的:
create procedure proceemployee
@var char(10) = '' /*(或@var char(10) = '0001')
as
select code,name,ime,sex,age,isteacher,department
from employee
where code = @var
在SQL中可以呀但就是不能创建成DW呀
lzheng2001 2004-08-28
  • 打赏
  • 举报
回复
不是说了吗,先给参数赋一个初始值!
@var char(10) = '' --或某个值 ,成功后再改回来就行了
加载更多回复(1)

1,077

社区成员

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

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