查询接口的小问题

[复制链接]
查看11 | 回复8 | 2009-1-4 14:52:28 | 显示全部楼层 |阅读模式
查询BOM表的例子,在数据库已经创建了一个存储过程lwz_bomn1,当然是正错的
创建查询接口如下:
declare @a nvarchar(20)
SELECT @a=T0.Code FROM OITT T0 WHERE T0.Code ='[%0]'
set @a='[%0]'
exec lwz_bomn1 @a

现在如果把查询接口改为如下的话:
declare @a nvarchar(20)

/*把这行删除掉----SELECT @a=T0.Code FROM OITT T0 WHERE T0.Code ='[%0]'*/
set @a='[%0]'
exec lwz_bomn1 @a
出现如下错误提示:
1.必须指定要从中选取的表,
2.语法错误
如果单从SQL语法上讲
set @a='[%0]'
第个SET语句又重新给@a赋值,那么SELECT @a=T0.Code FROM OITT T0 WHERE T0.Code ='[%0]'
不就没有作用了吗,那为什么不能少呢?
请大家帮下。谢谢
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
并且SQL中用到的注释符号:“-- ” 好象都没效果。。
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
BO中是不支持 “--”的注释的
你干脆把整个那一行删除掉
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
那我一楼的问题请高手帮下。。。
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
declare @a nvarchar(20)
SELECT @a=T0.Code FROM OITT T0 WHERE T0.Code ='[%0]'
exec lwz_bomn1 @a
试一下呢
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
原帖由 古雨 于 2009-1-3 21:04 发表
declare @a nvarchar(20)
SELECT @a=T0.Code FROM OITT T0 WHERE T0.Code ='[%0]'
exec lwz_bomn1 @a
试一下呢

谢谢您的回复
你那样写是可以,但是
只是我不清楚的是我们当输入一个父编码时为什么不能直接用SET @A=[%0] 来接收值然后用存储过程执行,而必须得将值传给查询语句(当然这种情况下可以不再赋需要用SET 语句,但是两个变量不一样时,且父编码必须是由SET语句的变量传递时,那SET语句就不能少了,例子如下)。。。
declare @a nvarchar(20)
declare @b nvarchar(20)
SELECT @a=T0.Code FROM OITT T0 WHERE T0.Code ='[%0]'
set @b=[%1]
exec lwz_bomn1 @a
这样的语法也是没问题的,'[%0]'的值可以不输入,只输入[%1]就可以了,但是[%0]'却不能少,不然就提示错误:找不到要查询的表
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
[%0]这个条件在B1里面和表相关联,因为可以取现值
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
原帖由 xiesjd 于 2009-1-7 13:56 发表
[%0]这个条件在B1里面和表相关联,因为可以取现值

大哥,你这个可以取现值是代表什么意思,
我奇怪的是为什么要多加一行呢,直接用SET不行吗?
不知道大家理解没
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行