Took a while to track this one down.

I was trying to replace ${nant.Version} when I should have been using ${nant.version}

Sigh …

 

SQL Task Aborts when expandprops=”true” and a ${property} has not been defined

 

The following Build Script

 

    <project name="SQL bug" basedir="." default="Bug">

 

        <!-- Properties -->

        <!-- Properties -->

        <!-- Properties -->

        <property name="SqlServer"      value="(Local)"/>

        <property name="SqlConnMaster"  value="Provider=SQLOLEDB;Data Source=${SqlServer}; Integrated Security=SSPI"/>

        <property name="SqlDb"          value="tempdb"/>

 

        <!-- Targets -->

        <!-- Targets -->

        <!-- Targets -->  

        <target name="Bug">

            <call target="Works"/>

            <call target="Fails"/>

        </target>   

        <target name="Works">

            <sql connstring="${SqlConnMaster}" delimiter="GO" delimstyle="Normal" print="true" expandprops="false"><![CDATA[

                Print '${Unknown}'

            ]]></sql>

        </target>

        <target name="Fails">

            <sql connstring="${SqlConnMaster}" delimiter="GO" delimstyle="Normal" print="true" expandprops="true"><![CDATA[

                Print '${Unknown}'

            ]]></sql>

        </target>

 

    </project>

 

Generated the following output:

    Buildfile: file:///C:/EnY/TEM_SQL/_nAnt/Bug.Build

    Base Directory: C:\EnY\TEM_SQL\_nAnt.

 

    Bug:

 

 

    Works:

 

    SQL Task:

    Connection String: Provider=SQLOLEDB;Data Source=(Local); Integrated Security=SSPI

    Use Transaction?: True

    Batch Sql Statements?: True

    Batch Delimiter: GO

    Delimiter Style: Normal

    Fail On Error?: True

    Source script file:

    Output file:

 

    SQL Statement:

    Print '${Unknown}'

 

    ${Unknown}

 

    Fails:

 

    SQL Task:

    Connection String: Provider=SQLOLEDB;Data Source=(Local); Integrated Security=SSPI

    Use Transaction?: True

    Batch Sql Statements?: True

    Batch Delimiter: GO

    Delimiter Style: Normal

    Fail On Error?: True

    Source script file:

    Output file:

 

    Total time: 0 seconds.

 

    BUILD FAILED

 

    INTERNAL ERROR

 

    System.NullReferenceException: Object reference not set to an instance of an object.

       at NAnt.Core.BuildException.get_Message()

       at NAnt.Contrib.Tasks.SqlTask.ExecuteTask()

       at NAnt.Core.Task.Execute()

       at NAnt.Core.Target.Execute()

       at NAnt.Core.Project.Execute(String targetName)

       at NAnt.Core.Tasks.CallTask.ExecuteTask()

       at NAnt.Core.Task.Execute()

       at NAnt.Core.Target.Execute()

       at NAnt.Core.Project.Execute(String targetName)

       at NAnt.Core.Project.Execute()

       at NAnt.Core.Project.Run()

 

    Please send bug report to [EMAIL PROTECTED]

Reply via email to