Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #7278

    kenny
    Member

    I can’t see how do do this, but is it possible to write a macro to execute an external tool with prompts for the parameters prior to execution?

    Specifically, I want to execute the osql command line tool passing the current file path/name [no problem here]. But I also want to prompt for the server and database parameters.

    Any thoughts?

    #7282

    Yutaka Emura
    Keymaster

    kenny wrote:
    I can’t see how do do this, but is it possible to write a macro to execute an external tool with prompts for the parameters prior to execution?

    Specifically, I want to execute the osql command line tool passing the current file path/name [no problem here]. But I also want to prompt for the server and database parameters.

    Any thoughts?

    For this purpose, you will need to write a macro. External Tools currently cannot include a user interface to input parameters.

    #7286

    kenny
    Member

    For this purpose, you will need to write a macro. External Tools currently cannot include a user interface to input parameters.

    Thanks for the reply, but what I’m asking is how to write this macro. I can see hpow to execute an external tool from a macro, but I can’t see how to pass parameters to it in a macro.

    #7288

    Yutaka Emura
    Keymaster

    kenny wrote:

    For this purpose, you will need to write a macro. External Tools currently cannot include a user interface to input parameters.

    Thanks for the reply, but what I’m asking is how to write this macro. I can see hpow to execute an external tool from a macro, but I can’t see how to pass parameters to it in a macro.

    You would write something like this:


    WshShell = new ActiveXObject( "WScript.Shell" );
    sCmdline = prompt( "Command line: ", "" )
    WshShell.Run( "app.exe", sCmdline );

    #7289

    kenny
    Member

    OK, I can see how I could get this working, but it’s not calling one of the configured external tools [i.e. tools menu -> external tools].

    This is still OK, but can I capture the output of WshShell.Run( “app.exe”, sCmdline ); ?

    #7290

    Yutaka Emura
    Keymaster

    kenny wrote:
    OK, I can see how I could get this working, but it’s not calling one of the configured external tools [i.e. tools menu -> external tools].

    This is still OK, but can I capture the output of WshShell.Run( “app.exe”, sCmdline ); ?

    How about this?


    sCmdline = prompt( "Command line: ", "" )
    var wsh = new ActiveXObject("WScript.Shell");
    wExec = wsh.Exec("app.exe " + sCmdline);

    OutputBar.Visible = true;
    OutputBar.SetFocus();
    OutputBar.writeln("--------");
    OutputBar.write(wExec.StdOut.ReadAll());
    OutputBar.write(wExec.StdErr.ReadAll());

    #7292

    kenny
    Member

    I’m getting somewhere, but not quite there yet.
    Using vb rather than jscript [code below]
    It doesn’t seem to like the ReadAll lines.
    I can’t find any reference to this in the help file. Maybe I should be looking at some vbscript references instead.

    Any thoughts?

    sServer = prompt(“Enter Server”, “MyServer”)
    sDatabase = prompt(“Enter Database”, “MyDB”)
    sFileName = “MyFile.sql”
    sCmdline = “-w””2000″” -S””” + sServer + “”” -E -d””” + sDatabase + “”” -n -t28800 -I -i””” + sFileName + “”””

    set wsh = CreateObject(“WScript.Shell”)
    wExec = wsh.Run(“osql.exe ” + sCmdline)

    OutputBar.Visible = true
    OutputBar.SetFocus()
    OutputBar.writeln(“——–“)
    OutputBar.write(wExec.StdOut.ReadAll())
    OutputBar.write(wExec.StdErr.ReadAll())

    #7293

    kenny
    Member

    OK, I have it now. Many thanks for your help

    Missed a set statement.
    code should have been
    sServer = prompt(“Enter Server”, “MyServer”)
    sDatabase = prompt(“Enter Database”, “MyDB”)
    sFileName = “MyFile.txt”
    sCmdline = “-w””2000″” -S””” + sServer + “”” -E -d””” + sDatabase + “”” -n -t28800 -I -i””” + sFileName + “”””

    set wsh = CreateObject(“WScript.Shell”)
    set wExec = wsh.exec(“osql.exe ” + sCmdline)

    OutputBar.Visible = true
    OutputBar.SetFocus()
    OutputBar.writeln(“——–“)
    OutputBar.write(wExec.StdOut.ReadAll())
    OutputBar.write(wExec.StdErr.ReadAll())

Viewing 8 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic.

Share with friends... Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone