Solved

Return stored procedure result

Posted on 2010-11-29
5
261 Views
Last Modified: 2012-05-10
Hi,

I have made one SP which sends an email. The email is sent successfully. In the email body i wish to sent an email something like

Dear <Patient FirstName> <Patient LastName>,

Your Appointment for <Checkup> is scheduled at <Date & Time>


Ignore the italic font, all the detail under '< >' comes from another stored procedure.


The SP that contains query to send email is attached as "Email-SP.txt". The Patient Information containing query is attached as "Patient-Info.txt". A sample result set is attached as an image.

My Question: How to bring the patient information (Patient-Info.txt) so that email with above format is sent up?

Let me know for any doubts.

Email-SP.txt
Patient-Info.txt
Patient-ResultSet.png
0
Comment
Question by:meispisces
5 Comments
 
LVL 50

Expert Comment

by:Lowfatspread
ID: 34229242
TRY ALTERING YOUR LOAD.. PROCEDURE TO MORE LIKE THIS...

INVOKE AS
 DECLARE @BODY VARCHAR(8000),@ADDR VARCHAR(256)

 EXEC LOADaPTPATIENTINFO 1,2,'aPTemail'@BODY OUTPUT,@ADDR OUTPUT

 
ALTER PROCEDURE LoadAptPatientInfo
    @Patientid BIGINT ,
    @AppointmentID BIGINT
    ,@mode char(8) = 'None'
    ,@emailbody varchar(2000) Output
    ,@emailaDDR VARCHAR(256) oUTPUT

AS
    Set Nocount on
    declare @crlf char(2)
    set @crlf = char(10)+char(13)

    if @mode = 'None'
    begin
    SELECT  Patient.FirstName AS FirstName ,
            Patient.LastName AS LastName ,
            At.AppointmentType AS AptType ,
            CONVERT(VARCHAR(10), At.StartDate, 101) AS AptStartDate ,
            At.StartTime AS AptStartTime ,
            At.[STATUS] AS AptStatus ,
            At.IsRescheduled AS AptRescheduled ,
            At.IsAlarm AS AptAlarm ,
            At.IsRecurring AS AptRecurring ,
            At.Coments AS AptComments ,
            Ab.Email AS EmailAddress
    FROM    Appointment At
            INNER JOIN Patient ON At.PatientID = Patient.PatientID
            INNER JOIN dbo.AddressBook Ab ON dbo.Patient.AddressID = Ab.AddressID
    WHERE   Patient.PatientID = @PatientID
            AND At.AppointmentID = @AppointmentID ---AND At.[Status]='Confirmed'    
    ORDER BY    At.CreatedDt DESC
    end
    else if @mode = 'AptEmail'
    begin
         SELECT  TOP 1 @EMAILBODY='Dear '+Patient.FirstName +' '
            +Patient.LastName +','+@crlf
            +'Your appointment for '+At.AppointmentType +' '
            +'is scheduled at '+CONVERT(VARCHAR(10), At.StartDate, 101) +' '
            + At.StartTime
            @EMAILaDDR=Ab.Email
    FROM    Appointment At
            INNER JOIN Patient ON At.PatientID = Patient.PatientID
            INNER JOIN dbo.AddressBook Ab ON dbo.Patient.AddressID = Ab.AddressID
    WHERE   Patient.PatientID = @PatientID
            AND At.AppointmentID = @AppointmentID ---AND At.[Status]='Confirmed'    
    ORDER BY    At.CreatedDt DESC
    END
rETURN
0
 
LVL 3

Expert Comment

by:GSGDBA
ID: 34229482
HI,

What you can do is create a Temp table
#tmp_PatientInfo in  GetpatientEmailInformation sp.
Create temp table with same column and its datatypes as in select statement of LoadAptpatientinfo.

include the below statement
insert into #tmp_PatientInfo
Exec LoadAptPatientInfo

View below link for more info:
sqlddev.wordpress.com/2008/05/06/insert-into-temporary-table-from-stored-procedure/
0
 
LVL 3

Accepted Solution

by:
GSGDBA earned 500 total points
ID: 34229494
HI,

I missed one more step here.
It's like this:
1) Create temp table
2) Insert into temp table exec SP
3) slect * from Temp table.
4) drop temp table.
that's it

0
 
LVL 1

Expert Comment

by:amu_27
ID: 34229919
You can define the email body in seperate table lets say i.e. EmailTemplate. In body column, use <CR1>, <CR2> and in email procedure replace those tag with the actual information like first name, last name etc.
0
 
LVL 7

Author Closing Comment

by:meispisces
ID: 34368422
thanks
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Ever wondered why sometimes your SQL Server is slow or unresponsive with connections spiking up but by the time you go in, all is well? The following article will show you how to install and configure a SQL job that will send you email alerts includ…
This article shows gives you an overview on SQL Server 2016 row level security. You will also get to know the usages of row-level-security and how it works
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now