Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Templates with Output Variables



  • I have the following Template that I am trying to use.
    However I keep getting the following error: Cannot assign a Vector value to a Scalar variable.

    ##AH:UseTextMode
    template SQL-ScalarQuery<$ConnectionString, $CommandText, out $Result>
    {
        set $Script = >>
            `$c = `$null;
            `$command = `$null;
            TRY {
                `$c = New-Object System.Data.SqlClient.SqlConnection
                `$c.ConnectionString = $ConnectionString
                `$c.Open();
                `$command = `$c.CreateCommand();
                `$command.CommandText = `$CommandText;
                `$Result = `$command.ExecuteScalar();
    
                if (`$Result -ne `$null)
                {
                    return `$Result.ToString();
                }
                else
                {
                    return "";
                }
            }
            FINALLY {
                `$c.Dispose();
                `$command.Dispose();
            }
        >>;
    
        set $Result = $PSEval($Script);
    }
    

    Sample of me trying to use this template:

    set $IsSysAdmin = "";
    call SQL-ScalarQuery(
        ConnectionString: $SQLServerConnectionString,
        CommandText: >>
            SELECT CAST(IS_SRVROLEMEMBER('sysadmin') as INT)
        >>,
        Result: $IsSysAdmin
    );
    
    if $IsSysAdmin == "0"
    {
        error;
        Log-Error The user running the Otter Agent must be sysadmin on the local sql server;
    }
    

    Screenshot of the error



  • Thanks, we've identified this as a bug with template variable processing, and will have this fixed in the next version of Otter (coming in a day or two).


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation