设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: HG
打印 上一主题 下一主题

用變量構造出來的SQL語句在TSQL中怎樣作才能執行哪?

[复制链接]
11#
 楼主| 发表于 2002-10-29 22:41:00 | 只看该作者
cgl您說的哪句可以運行,但我的年月是數字的,問題是當構造完的SQL語句是字符串,所以無法執行。可有辦法,又怎樣把數字值引入到上例中的函數中去哪?多謝!
12#
 楼主| 发表于 2002-10-30 00:15:00 | 只看该作者
終於作出來啦。原因嘛,很簡單,對比一下上面的即可見分曉。
--use acc
/*
alter procedure usp_qry_xwage_xmonth_en @my_year smallint,@my_month tinyint,@my_dept_str  varchar(200) = null,@my_title_str varchar(200) = null,@my_emp_sn_str varchar(200) =null   
as     
begin   
declare @query as varchar(200)
set @query ='select * from uv_wage_month_total where wage_date_year='+str(@my_year)+' and wage_date_month='+str(@my_month)
if @my_dept_str is not  null     
         set @query = @query + '  and dept_no in ('+@my_dept_str +')'   
if @my_title_str is not null   
          set @query = @query + ' and emp_title in ('+@my_title_str+')'   
if @my_emp_sn_str is not null   
           set @query = @query + ' and emp_sn in ('+@my_emp_sn_str+')'   
execute(@query)
end     
*/
--exec usp_qry_xwage_xmonth_en @my_year=2002,@my_month=9,@my_dept_str="'HHoffice','HHQA'"
13#
发表于 2002-10-30 00:44:00 | 只看该作者
不是和 CG1 说的一样吗?
14#
 楼主| 发表于 2002-10-30 01:54:00 | 只看该作者
看來您還沒看出問題所在,我提示在TSQL中有這樣一條語句才是解決問題所在
exec(@query) 為什麼不是execute @query哪?
如果@query所用字段全部是字符品,則execute @query是可以通過的。我憶測試過。
sql2k企業版SQLp2,win2000和sp2都是英文版.
15#
发表于 2002-10-30 18:40:00 | 只看该作者
能否再问一下
--use acc
/*
alter procedure usp_qry_xwage_xmonth_en @my_year smallint,@my_month tinyint,@my_dept_str varchar(200) = null,@my_title_str varchar(200) = null,@my_emp_sn_str varchar(200) =null
as
begin
declare @query as varchar(200)
set @query ='select * from uv_wage_month_total where wage_date_year='+str(@my_year)+' and wage_date_month='+str(@my_month)
if @my_dept_str is not null
set @query = @query + ' and dept_no in ('+@my_dept_str +')'
if @my_title_str is not null
set @query = @query + ' and emp_title in ('+@my_title_str+')'
if @my_emp_sn_str is not null
set @query = @query + ' and emp_sn in ('+@my_emp_sn_str+')'
-- 注意:
exec @query
-- 这样能否执行?因为前面的 @query的赋值过程已经和你第一个帖子的赋值过程
-- 完全不同了, 而且现在 @query 赋值的最后结果也全部是字符,我想里面已经不
-- 涉及到数字了,因为里面所有的数字已经全部用  str() 函数转换为字符了
-- 不好意思,我问得比较繁琐一点,主要是我刚学 sql ,问仔细点以后就不用自己再
-- 慢慢捉摸了
end
*/
--exec usp_qry_xwage_xmonth_en @my_year=2002,@my_month=9,@my_dept_str="'HHoffice','HHQA'"
16#
 楼主| 发表于 2002-10-30 19:55:00 | 只看该作者
這樣是不可以執行的,只因為構造的代碼中有數字出現。
但現在我又有問題出現啦,用上述構造的代碼,已成功執行(在SQL環境中)但在ADP前端ACCESS中卻無記錄集返回。提示如下:the stored procedure executed successfully but did not return records.為什麼成功執行卻無記錄集返回。
我現在想上述構的存儲過程作為報表的數據源,但現在成功的無記錄集返回,怎麼回事,請各位指點。多謝!
17#
发表于 2002-10-30 23:56:00 | 只看该作者
是否要设定 output关键字?
18#
 楼主| 发表于 2002-10-31 00:19:00 | 只看该作者
與這個無關,現在的問題是在SQL分析器中是沒有絲毫問題的,但是在ADP客戶端卻無法返回記錄集。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-31 20:26 , Processed in 0.086139 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表