Comandos SQL Server para la línea de Comandos de MSWindows

•julio 22, 2016 • Dejar un comentario

Existen ocasiones en las que tal vez necesitemos ejecutar algunas acciones en nuestro motor sin tener que entrar a la aplicación del explorador de base de datos del SQL Server. Por ejemplo, si precisamos efectuar algunos mantenimientos automáticos en las tablas de nuestro sistema, o actualizar algún campo rápidamente pasando un parámetro, etc. Para ello estuve viendo un par de utilidades de Microsoft que acompañan al motor SQLServer: OSQLSQLCMD.

Estas utilidades de linea de comando vienen en el paquete de instalación del SQLServer y del explorador cliente del motor de base de datos. Pero también las podemos instalar de modo “stand alone” sin necesidad de tener los paquetes completos de las aplicaciones anteriores. Para ello, debemos instalarnos un driver odbc y luego las utilidades (que todo pesa muy poco). Aquí los links:

https://www.microsoft.com/en-us/download/details.aspx?id=36434

https://www.microsoft.com/es-ES/download/details.aspx?id=36433

Luego de que tengan esto instalado, solo basta con abrir la ventana de command y ejecutar el comando osql o sqlcmd pasando como parámetro el nombre de usuario para establecer la conexión y la base de datos en donde vamos a trabajar.

Por ejemplo. Si queremos hacer un update en una tabla:

osql -S NOMBRE_INSTANCIA_SERVIDOR -E -d NOMBRE_BASE -Q “update NOMBRE_TABLA SET xxxxxxxxxx”

En este ejemplo nos logueamos en el servidor utilizando un usuario de confianza en vez de pasarle usuario y password (por el modificador -E) y cuando se termina de ejecutar el query, sale del modo osql (por el modificador -Q)

Esto es muy práctico para utilizarlo en un archivo .bat y ponerlo en un scheduler cuando son tareas automáticas o también podemos pedir variables de ingreso en el bat y ejecutar el comando sql con esos parámetros, etc.

con el ejemplo anterior, pedimos variables dentro del archivo .bat:

SET /P X_VARIABLE=Ingresar valor:

osql -S NOMBRE_INSTANCIA_SERVIDOR -E -d NOMBRE_BASE -Q “update NOMBRE_TABLA SET xxxxxxxxxx WHERE NOMBRE_CAMPO= %X_VARIABLE%”

Una ayuda rápida la podemos obtener con el modificador osql /? como en casi todos los comandos.

Si quieren ver a fondo las bondades de estas utilidades, lo pueden hacer estudiando en estos links desde las propias páginas de referencias:

OSQLhttps://msdn.microsoft.com/es-es/library/ms162806(v=sql.120).aspx

SQLCMDhttps://msdn.microsoft.com/en-us/library/ms162773.aspx

*********Nota:

Microsoft recomienda preferentemente que utilicemos el comando SQLCMD. Al parecer el comando OSQL se discontinuará en algún momento.

 

VB6 Barras de Desplazamiento en Formularios

•julio 1, 2016 • Dejar un comentario

Si alguien esperaba encontrar aquí la forma de activar las barras de desplazamiento de una ventana de formulario en VB6, les tengo una mala noticia: VB6 no tiene esa capacidad.

Es raro. En los formularios creados en MS Access por ejemplo, uno puede activar o desactivar las barras de desplazamiento de las ventanas, tanto la horizontal como la vertical. Pero al parecer esto no se ha contemplado para Visual Basic.

En el sitio oficial de Microsoft Support ofrecen una alternativa a esto, una solución algo rebuscada pero la probé y funciona, aunque no es muy cómoda: Y consta en crear un Picture Box en el formulario (que ocupe toda la ventana de nuestro form) y dentro de este elemento colocar todos los controles que queramos (cuadros de textos, botones, etc.). Luego, con dos controles de desplazamiento (horizontal y vertical), mover el picture box simulando el desplazamiento de paginación en el formulario.

Aquí les dejo el código que se publicó en el sitio de Microsoft:

Agregue el código siguiente al evento Form Load:

Sub Form_Load()
‘ Make the picture box bigger than the form:
Picture1.Move 0, 0, 1.4 * ScaleWidth, 1.2 * ScaleHeight
‘ Position and size the first TextBox:
Text1(0).Move 0, 0, Picture1.Width / 2, Picture1.Height / 20
‘ Place some sample controls in the picture box:
Dim i As Integer
For i = 1 To 20
Load Text1(i)
Text1(i).Visible = True
Text1(i).Left = i * Picture1.Height / 20
Text1(i).Top = Text1(i).Left
Next
End Sub
Agregue el código siguiente en el evento Resize del formulario:

Sub Form_Resize ()
‘ Position the scroll bars:
hscroll1.Left = 0
vscroll1.Top = 0
If Picture1.Width > scalewidth Then
hscroll1.Top = ScaleHeight – hscroll1.Height
Else
hscroll1.Top = ScaleHeight
End If
If Picture1.Height > hscroll1.Top Then
vscroll1.Left = scalewidth – vscroll1.Width
If Picture1.Width > vscroll1.Left Then
hscroll1.Top = ScaleHeight – hscroll1.Height
End If
Else
vscroll1.Left = scalewidth
End If
hscroll1.Width = scalewidth
If hscroll1.Top > 0 then vscroll1.Height=hscroll1.Top
‘ Set the scroll bar ranges
hscroll1.Max = Picture1.Width – vscroll1.Left
vscroll1.Max = Picture1.Height – hscroll1.Top
hscroll1.SmallChange = Abs(hscroll1.Max \ 16) + 1
hscroll1.LargeChange = Abs(hscroll1.Max \ 4) + 1
vscroll1.SmallChange = Abs(vscroll1.Max \ 16) + 1
vscroll1.LargeChange = Abs(vscroll1.Max \ 4) + 1
hscroll1.ZOrder 0
vscroll1.ZOrder 0
End Sub
Agregue el código siguiente al evento de cambio de HScroll1:

Sub HScroll1_Change ()
Picture1.Left = -HScroll1.Value
End Sub
Agregue el código siguiente al evento de cambio de VScroll1:

Sub VScroll1_Change ()
Picture1.Top = -VScroll1.Value
End Sub

Dispositivos e Impresoras no responde en Windows Seven.

•octubre 11, 2012 • Dejar un comentario

Que podemos hacer cuando en nuestro Windows Seven no podemos acceder a los dispositivos e impresoras que tenemos instalado en el equipo.
Bueno, aca un par de soluciones probadas que solucionan este raro error.

1- La primera solución y más sencilla es ir a panel de control -> herramientas administrativas -> servicios. Ahí buscamos un servicio llamado: Servicio de compatibilidad con Bluetooth. El mismo se encuentra con inicio manual, lo que en algunos casos aislados trae un conflicto con las impresoras. Lo que se debe hacer es modificar el Tipo de inicio a Automático o Deshabilitado según corresponda (si poseemos bluetooth en la PC colocamos automático y en caso contrario lo deshabilitamos). Reiniciamos la PC y listo.

2- La segunda solución solamente la vamos a utilizar en caso de que la primera no funcione. En este caso lo que vamos a hacer es quitar las impresoras del sistema sin desinstalar los drivers. Para ello, vamos al registro (inicio -> ejecutar y escribimos REGEDIT. Si no les aparece la opción ejecutar, botón derecho en inicio -> propiedades -> en la solapa Menú Inicio -> personalizar, buscamos la opción Comando Ejecutar y lo tildamos).
Una vez que hallamos ingresado al registro, nos dirigimos a: HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control Print . Acá nos vamos a encontrar con las siguientes carpetas: Environments, Monitors, PendingUpgrades, Printers, providers. Lo que debemos hacer es eliminar en cada una de las carpetas anteriores junto con sus subcarpetas nuestras impresoras (NO ELIMINAR LAS IMPRESORAS DEFAULT DE WINDOWS COMO POR EJEMPLO Microsoft Shared Fax Driver O Microsoft XPS Document Writer). Si la impresora está conectada por red (se encuentra conectada en otra PC de la red) va a figurar en Environments; si está por IP va a figurar en Monitors Standard TCP/IP Port Ports; si está local va a figurar en Printers (creo). Reiniciamos la PC y listo, debería funcionar.

Unidades de Red

•mayo 9, 2012 • Dejar un comentario

Cuando Windows comete errores al manejar accesos a equipos o a recursos compartidos, lo mejor es acudir a la ventana de comandos (botón de inicio – ejecutar – command) y utilizar los comandos DOS.

Ver listado de recursos de red:
net use

Crear una credencial de acceso a un equipo o recurso compartido:
net use nombre_de_pc password /user:usuario /persistent:yes

Deshabilitar una unidad mapeada:
net use recurso_de_red /delete

Luego de eliminar unidades de red mapeadas, se debe reiniciar el equipo.

Firewall vs IIS

•abril 15, 2011 • Dejar un comentario

Algunos cabos sueltos entre el servicio de IIS y el Firewall de MS WinXP pueden provocar que el sitio web configurado en nuestro servidor no se vea en los demás equipos de la red.

Este problema se soluciona yendo a:

Panel de Control -> Firewall de Windows -> Opciones Avanzadas -> señalar conexión de área local y presionar Configuracion -> Activar Servidor Web (y si es necesario Servidor Web Seguro).

Con esto, se debería comenzar a ver el sitio.

Claro está que primero se deben chequear los permisos de usuario en las carpetas correspondientes al site.

Eliminar permisos en Windows 7

•abril 11, 2011 • Dejar un comentario

Con respecto a los permisos de usuario sobre carpetas compartidas en otros equipos, el S.O. MS Windows 7 posee una forma de administración algo diferente que en la versión XP.

Anteriormente, al eliminar las unidades de red mapeadas en una terminal, se eliminaban también los permisos del usuario asociados a ellas. Sin embargo, si eliminamos los mapeos en un MS Win7, los permisos hacia esas carpetas se seguirán manteniendo debido a que el S.O. los almacena en lo que se denominan “Credenciales de Usuario”. Para eliminar estos permisos, se debe ir al Panel de Control, Cuentas de Usuario y allí eliminar los permisos guardados en el Administrador de Credenciales.

 

WordPress para moviles

•febrero 17, 2011 • Dejar un comentario

Estamos probando la aplicación para dispositivos móviles de WordPress. En este caso, desde un IPod Touch 4g. Si bien es practico a la hora de postear algo cuando estamos lejos de nuestra PC, se muestra incomodo como cualquiera de estas herramientas de edición de texto en un dispositivo tan pequeño.
De todos modos, como dijimos antes, es una aplicación bastante practica. Dentro de sus utilidades, posee un editor de posteos (desde donde estoy escribiendo ahora) y un visor de comentarios desde donde podemos responder consultas y demás.
Para el que la quiera descargar, es gratuita y esta disponible en el repositorio de App Store.

Siempre son bienvenidas estas utilidades móviles. Asique, a probarlas.