none
SQLCMD Ocultar ventana RRS feed

  • Pregunta

  • Buenos días,

    Estoy usando la utilidad SQLCMD para hacer el envío de datos de un PC windows XP a una base de datos SQLserver.

    Mas concretamente llamo a través de un .bat a un script .sql haciendo un paso de parámetros. Un ejemplo sencillo sería el siguiente:

    .bat:

        sqlcmd -S ..\sqlexpress -i sqlinsert.sql -v producto='numero1'

    sqlinsert.sql:

         INSERT INTO Pruebast.dbo.[Tabla1](Referencia)
         VALUES ($(producto)

    Durante el proceso se me abre la ventana SQLCMD realizando un parpadeo (un segundo aprox.). Me gustaría ocultar esa ventana de manera cuando realice esas transferencias ese parpadeo quede oculto al usuario.

    He intentado solucionarlo ejecutando un archivo .vbs  ubicado en el mismo directorio que el  script .sql pero no lo consigo. Me muestra el error "El sistema no puede encontrar el archivo especificado". El .vbs es el siguiente

    .vbs :

          Set WshShell = CreateObject("WScript.Shell")
          WshShell.Run chr(34) & "sqlcmd -S rechalecu-pc\sqlexpress -i C:\sqlpruebas\spruebainsert.sql" & Chr(34), 0
          Set WshShell = Nothing 

    No se si esta es la mejor manera de ocultar la ventana o si existen otras mas sencillas.

    Por otro lado me gustaría resolver esta pregunta: ¿Que es mejor para enviar datos a una BBDD, realizar un "insert" y consecutivamente varios "updates" para un registro hasta completar todos los campo?¿O es mejor  realiar un solo insert con todos los campos de un registro?

    La verdad que no tengo mucha esperiencia con SQLserver y su utilidad SQLCMD. Agradecería cualquier tipo de ayuda.

    Un saludo

    Rubén

    viernes, 17 de mayo de 2019 8:31

Respuestas