0
declare @USERID varchar(50)
Declare @FileName Varchar(500)
declare @file_ext nvarchar(30)
Declare @exeVariable nvarchar(4000)
declare @file_type nvarchar(50)
declare @messageBody nvarchar(MAX)
declare @attach nvarchar(MAX)
declare @p_recipients varchar(MAX)
declare @EMAIL_ID  varchar(MAX)
declare @count float
set @file_type='PDF'
SET @file_ext='.pdf'

begin



Declare @USERID_Cursor Cursor
Set @USERID_Cursor = Cursor for 
SELECT DISTINCT empcode,email FROM EmailTable

Open @USERID_Cursor
Fetch NEXT from @USERID_Cursor into @USERID,@EMAIL_ID

While @@FETCH_STATUS = 0
BEGIN
SET @exeVariable = '[FilePath=C:\inetpub\wwwroot\WebServer\ProgramGuide\Report1.Stat]'
SET @exeVariable = @exeVariable +'[ConnStr=Provider=SQLOLEDB.1;Password=*abcdef;Persist          Security Info=True;User ID=abcd;Initial Catalog=OneKeyAgile;DataSource= ]'
SET @exeVariable = @exeVariable + '[NC_CountS=1][NC_ParaS=mcode][mcode='+@USERID+']     [NC_CountN=0][NC_ParaN=][NC_CountD=0][NC_ParaD=]'                                  
SET @exeVariable = @exeVariable + '[FormatTyp=PDF][ExportPath=F:\abcd\Report 1-'+@USERID+'.PDF] [StatWebServer=http://192.168.5.25/WebServer/Service.asmx]'
SET @exevariable = '"C:\"Program Files"\"ABCD"\Reporter.exe ' + @exevariable  +'"'

PRINT @exevariable
exec xp_cmdshell @exeVariable


SET @p_recipients = @EMAIL_ID
SET @attach = 'F:\BUDGET\Report1' + @USERID + @file_ext+''
SET @messageBody = ' '

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'ABCD', 
@recipients = @p_recipients,
@body = @messageBody,
@file_attachments = @attach
Fetch NEXT from @USERID_Cursor into @USERID,@EMAIL_ID
END
Close @USERID_Cursor
Deallocate @USERID_Cursor


end

好的,这是我的光标。我使用它来将电子邮件表中的 empcode 传递给游标,然后游标将此参数传递给我的报告工具。这工作正常。

比方说,我现在想包含来自 email_table 的另一个变量 bcode,它也需要传递到游标中。有什么帮助吗?

4

0 回答 0