Is that the whole script that you show below? Is there anything before it like 
an IF EXISTS?

I recall having issues with this too. Have you tried delimiter=Normal?

IF this is SQL server have you watched profiler to see what got sent to the 
server?

BOb


> -----Original Message-----
> From: LLCard [mailto:llyo...@cox.net]
> Sent: Tuesday, July 07, 2009 11:10 AM
> To: nant-users@lists.sourceforge.net
> Subject: [NAnt-users] Nant SQL Task limitations / problems
> 
> 
> Hi,
> 
>    I am trying to use the NAnt sql task to run a set of sql scripts.  I
> am
> getting errors with the sql task not parsing the sql script properly.
> Any
> help would be very much appreciated (lance_ly...@gordian-health.com).
> Is
> NAnt SQL Task the way to go?  Should I be using sqlcmds which will run
> fine
> but not return as much error information.   Thanks
> 
> Lance
> 
> 
>  The errors are...
> 
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@SOC_SEC".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@SOC_SEC".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@SOC_SEC".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@SOC_SEC".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@Soc_Sec".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@RecallType".
>     Incorrect syntax near the keyword 'AND'.
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@DateQueued".
>     Must declare the scalar variable "@DateQueued".
>     Must declare the scalar variable "@RecallType".
>     Must declare the scalar variable "@Soc_Sec".
>     Incorrect syntax near the keyword 'PROCEDURE'.
>     Must declare the scalar variable "@InternalId".
>     Incorrect syntax near the keyword 'PROCEDURE'.
>     Incorrect syntax near the keyword 'PROCEDURE'.
>     'CREATE/ALTER PROCEDURE' must be the first statement in a query
> batch.
>     Incorrect syntax near 'GO'.
> 
> 
> 
> 
> the NAnt script (SQL Task) used is shown below.
> 
> 
> <sql
>     connstring="Provider=SQLOLEDB;Data Source=${sql.server}; Initial
> Catalog=${sql.database};User Id=${sql.user}; Password=${sql.password};"
>       transaction="true"
>       delimiter="GO"
>       delimstyle="Line"
>       print="true"
>       batch="true"
>       source="${sqlscriptname}"
>       output="${build.dbfolder}\results.txt"
> />
> 
> 
> 
> The sql script is a synchronization script created by REDGate's sql
> compare.
> The stored procedure that is causing the issues above is shown below.
> 
> 
> 
> CREATE PROCEDURE [dbo].[Recall_WorkflowVerification]
> (
> @Soc_Sec varchar(9),
> @RecallType varchar(10),
> @DateQueued datetime = null
> )
> AS
> BEGIN
> /*
> Recall_WorkflowVerification
> Created: 6/29/2009 by Sean Lowery
> Purpose: DEFECT 441, create a way to verify recall is accurate before
> queuing.
> Paramenters: Soc_Sec = Social Security identifier of participant
> (varchar(9))
> RecallType = Type from Recall table (Recall Code) (varchar(10))
> Important Note: At the time this was created, no clients are using
> custom
> workflows for these recalls.  We will need to create either new
> verification
> procedures or add on to this one for future custom workflows.
> Please see the procedure that calls this one, Recall_Create for more.
> I HIGHLY recommend we move all workflows to the database, and out of
> qdfs.
> That way this procedure can become much more dynamic and accurate as
> time
> progresses and workflow changes.
> TEST SCRIPT:
> EXEC Recall_WorkflowVerification 'GHS123456', 'SM-NBFUR2'
> */
> DECLARE @Retval bit, @Error varchar(100), @InternalID int, @DateEngaged
> datetime
> SET @Retval = 1
> SELECT @InternalID = InternalID from MEMBER where Soc_Sec = @Soc_Sec
> SELECT @DateEngaged = MAX(DateEngaged) from NBP_Engagement where
> InternalID
> = @InternalID
> IF @RecallType IN ('SM-NBFUR', 'SM-NBFUR2', 'SM-NBSCI', 'SM-NBSC',
> 'SM-NBPR', 'L-NBPR','SM-NBPRS', 'SM-NBFRS','SM-NBCRS','SM-NBPRTX',
> 'SM-NBFRT', 'L-NBPRTX','L-RENG', 'SM-RENG', 'SM-RENFU', 'SM-NBPRT',
> 'L-NBPRT' )
> BEGIN
> IF @DateEngaged IS NULL
> BEGIN
> SET @Error = 'No engagement for this participant.'
> SET @Retval = 0
> END
> IF @DateQueued IS NULL
> SET @DateQueued = getdate()
> IF EXISTS(SELECT Recall_ID FROM Recall WHERE [Type] = @RecallType AND
> COMPLETE IS NULL)
> BEGIN
> SET @Retval = 0
> SET @Error = 'Same recall already pending for this user.'
> END
> IF @RecallType = 'SM-NBSC' AND NOT EXISTS(Select InternalID FROM Member
> WHERE Status = 'N' and InternalID = @Internalid) AND @Retval = 1
> BEGIN
> SET @Retval = 0
> SET @Error = 'Participant''s status is not valid for this recall.'
> END
> IF @RecallType IN ('SM-NBFUR', 'SM-NBFUR2', 'SM-NBSCI') AND @Retval = 1
> BEGIN
> IF EXISTS(SELECT Recall_ID FROM Recall WHERE [Type] IN ('SM-NBFUR',
> 'SM-NBFUR2', 'SM-NBSCI') AND COMPLETE IS NULL)
> BEGIN
> SET @Retval = 0
> SET @Error = 'Brown Rules recall sequence already started and recalls
> are
> still outstanding.'
> END
> IF NOT EXISTS(SELECT EngagementID FROM NBP_Engagement WHERE InternalID
> =
> @InternalID AND Mode = 'E' AND DateClosed IS NULL)
> BEGIN
> SET @Retval = 0
> SET @Error = 'Brown Rules recall sequence requires an open E-mail
> engagement.'
> END
> IF @RecallType = 'SM-NBFUR2' AND NOT EXISTS(SELECT Recall_ID FROM
> Recall
> WHERE [Type] = 'SM-NBFUR' AND Soc_Sec = @Soc_Sec AND DATEDIFF(day,
> Complete,@DateQueued) >= 7 AND Complete > @DateEngaged)
> BEGIN
> SET @Retval = 0
> SET @Error = 'Previous step in Brown Rules has not completed, and will
> automatically queue this recall.'
> END
> IF @RecallType = 'SM-NBSCI' AND NOT EXISTS(Select InternalID FROM
> Member
> WHERE Status = 'N' and InternalID = @Internalid)
> BEGIN
> SET @Retval = 0
> SET @Error = 'Participant''s status is not valid for this recall.'
> END
> END
> IF @RecallType IN ('SM-NBPR', 'L-NBPR') AND @Retval = 1
> BEGIN
> IF NOT EXISTS(SELECT Recall_ID FROM RECALL WHERE [Type] = 'C-NBCE-A2'
> AND
> SOC_SEC = @SOC_SEC AND COMPLETE IS NOT NULL AND DATEDIFF(day,
> Complete,@DateQueued ) >= 5  AND Complete > @DateEngaged)
> BEGIN
> SET @Retval = 0
> SET @Error = 'Does not meet pre-requisite requirements (completed C-
> NBCE-A2
> not found within 5 or more days ago).'
> END
> IF NOT EXISTS(SELECT EngagementID FROM NBP_Engagement WHERE InternalID
> =
> @InternalID AND Mode = 'T' AND DateClosed IS NULL)
> BEGIN
> SET @Retval = 0
> SET @Error = 'Green Rules recall sequence requires an open Portal
> Telephonic
> engagement.'
> END
> END
> IF @RecallType IN ('SM-NBPRS', 'SM-NBFRS', 'SM-NBCRS') AND @Retval = 1
> BEGIN
> IF NOT EXISTS(SELECT EngagementID FROM NBP_Engagement WHERE InternalID
> =
> @InternalID AND Mode = 'S' AND DateClosed IS NULL)
> BEGIN
> SET @Retval = 0
> SET @Error = 'This recall requires an open Self engagement.'
> END
> IF(@RecallType = 'SM-NBPRS' AND NOT EXISTS (SELECT Recall_ID FROM
> RECALL
> WHERE [Type] = 'SM-NBCRS' AND SOC_SEC = @SOC_SEC AND COMPLETE IS NOT
> NULL
> AND DATEDIFF(day, Complete,@DateQueued ) >= 6  AND Complete >
> @DateEngaged))
> BEGIN
> SET @Retval = 0
> SET @Error = 'Does not meet pre-requisite requirements (SM-NBCRS not
> found
> completed at least 6 days prior).'
> END
> IF(@RecallType = 'SM-NBFRS' AND NOT EXISTS (SELECT Recall_ID FROM
> RECALL
> WHERE [Type] = 'SM-NBPRS' AND SOC_SEC = @SOC_SEC AND COMPLETE IS NOT
> NULL
> AND DATEDIFF(day, Complete,@DateQueued ) >= 4  AND Complete >
> @DateEngaged))
> BEGIN
> SET @Retval = 0
> SET @Error = 'Does not meet pre-requisite requirements (SM-NBPRS not
> found
> completed at least 4 days prior).'
> END
> END
> IF @RecallType IN ('SM-NBPRE', 'SM-NBFRE', 'SM-NBCRE') AND @Retval = 1
> BEGIN
> IF NOT EXISTS(SELECT EngagementID FROM NBP_Engagement WHERE InternalID
> =
> @InternalID AND Mode = 'E' AND DateClosed IS NULL)
> BEGIN
> SET @Retval = 0
> SET @Error = 'This recall requires an open E-mail engagement.'
> END
> IF(@RecallType = 'SM-NBPRE' AND NOT EXISTS (SELECT Recall_ID FROM
> RECALL
> WHERE [Type] = 'SM-NBCRE' AND SOC_SEC = @SOC_SEC AND COMPLETE IS NOT
> NULL
> AND DATEDIFF(day, Complete,@DateQueued ) >= 6  AND Complete >
> @DateEngaged))
> BEGIN
> SET @Retval = 0
> SET @Error = 'Does not meet pre-requisite requirements (SM-NBCRE not
> found
> completed at least 6 days prior).'
> END
> IF(@RecallType = 'SM-NBFRE' AND NOT EXISTS (SELECT Recall_ID FROM
> RECALL
> WHERE [Type] = 'SM-NBPRE' AND SOC_SEC = @SOC_SEC AND COMPLETE IS NOT
> NULL
> AND DATEDIFF(day, Complete,@DateQueued ) >= 4  AND Complete >
> @DateEngaged))
> BEGIN
> SET @Retval = 0
> SET @Error = 'Does not meet pre-requisite requirements (SM-NBPRE not
> found
> completed at least 4 days prior).'
> END
> END
> IF @RecallType IN ('SM-NBPRTX', 'SM-NBFRT', 'L-NBPRTX', 'SM-NBPRT',
> 'L-NBPRT') AND @Retval = 1
> BEGIN
> IF NOT EXISTS(SELECT EngagementID FROM NBP_Engagement WHERE InternalID
> =
> @InternalID AND Mode IN('T', 'C') AND DateClosed IS NULL)
> BEGIN
> SET @Retval = 0
> SET @Error = 'This recall requires an open Telephonic engagement.'
> END
> IF(@RecallType IN('SM-NBPRTX', 'L-NBPRTX') AND NOT EXISTS (SELECT
> Recall_ID
> FROM RECALL WHERE [Type] = 'C-NBPS-A2' AND SOC_SEC = @SOC_SEC AND
> COMPLETE
> IS NOT NULL AND DATEDIFF(day, Complete,@DateQueued ) >= 7  AND Complete
> >
> @DateEngaged))
> BEGIN
> SET @Retval = 0
> SET @Error = 'Does not meet pre-requisite requirements (C-NBPS-A2 not
> found
> completed at least 7 days prior).'
> END
> IF(@RecallType = 'SM-NBFRT' AND NOT EXISTS (SELECT Recall_ID FROM
> RECALL
> WHERE [Type] = 'SM-NBPRTX' AND SOC_SEC = @SOC_SEC AND COMPLETE IS NOT
> NULL
> AND DATEDIFF(day, Complete,@DateQueued ) >= 10  AND Complete >
> @DateEngaged))
> BEGIN
> SET @Retval = 0
> SET @Error = 'Does not meet pre-requisite requirements (SM-NBPRS not
> found
> completed at least 10 days prior).'
> END
> END
> IF @RecallType IN('L-RENG', 'SM-RENG', 'SM-RENFU') AND @Retval = 1
> BEGIN
> IF NOT EXISTS(SELECT EngagementID FROM NBP_Engagement WHERE Mode = 'S'
> AND
> datediff(day, DateClosed, getdate()) >= 3 and DateEngaged =
> @DateEngaged)
> BEGIN
> SET @Retval = 0
> SET @Error = 'This recall requires a closed Self engagement with no new
> engagements.'
> END
> IF(@RecallType = 'SM-RENFU' AND NOT EXISTS (SELECT Recall_ID FROM
> RECALL
> WHERE [Type] = 'SM-RENG' AND SOC_SEC = @SOC_SEC AND COMPLETE IS NOT
> NULL AND
> DATEDIFF(day, Complete,@DateQueued ) >= 7  AND Complete >
> @DateEngaged))
> BEGIN
> SET @Retval = 0
> SET @Error = 'Does not meet pre-requisite requirements (SM-RENG not
> found
> completed at least 7 days prior).'
> END
> END
> END
> SELECT @Retval as OK, @Error as Error
> END
> GO
> 
> 
> --
> View this message in context: http://www.nabble.com/Nant-SQL-Task-
> limitations---problems-tp24375158p24375158.html
> Sent from the NAnt - Users mailing list archive at Nabble.com.
> 
> 
> -----------------------------------------------------------------------
> -------
> Enter the BlackBerry Developer Challenge
> This is your chance to win up to $100,000 in prizes! For a limited
> time,
> vendors submitting new applications to BlackBerry App World(TM) will
> have
> the opportunity to enter the BlackBerry Developer Challenge. See full
> prize
> details at: http://p.sf.net/sfu/blackberry
> _______________________________________________
> NAnt-users mailing list
> NAnt-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nant-users

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have 
the opportunity to enter the BlackBerry Developer Challenge. See full prize 
details at: http://p.sf.net/sfu/blackberry
_______________________________________________
NAnt-users mailing list
NAnt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to