miércoles, 17 de diciembre de 2014

Como obtener la impresora por defecto en C#

Les comparto una clase en C#, que tiene una  funcion  que entrega el nombre de la impresora por defecto en la maquina donde se ejecuta la rutina.

Para invocarla:
string impresora = Impresora.getImpresoraPorDefecto();


Nota: No aplica para este caso el error que entrega Net Fiddle

martes, 16 de diciembre de 2014

Crear una tabla desde un SELECT en DB2

En un blog con tips no puede faltar este: Como crear una tabla desde una consulta SQL (ya he puesto de MS SQL), ahora DB2:


CREATE TABLE ESQUEMA.TABLA  AS  (
    SELECT Campo1, Campo2 , Campon 
    FROM ESQUEMA.TABLA_ORIGEN 
    ) WITH DATA


Donde:

WITH NO DATA        :    Solo crea la estructura
WITH DATA               :    Copia los datos comprendidos en el SELECT

Por ejemplo: Si queremos crear una tabla para guardar paises se puede usar

CREATE TABLE ESQUEMA.PAIS AS ( SELECT '056' AS CODPAIS, 'CHILE ' AS PAIS FROM sysibm.sysdummy1) WITH DATA

lunes, 15 de diciembre de 2014

Cambiar el largo de un campo en DB2

Para cambiar el largo de un campo en DB2 se debe ejecutar el siguiente comando:  

ALTER TABLE ESQUEMA.TABLA ALTER COLUMN NOMBRE_DEL_CAMPO SET DATA TYPE CHAR(3)

Los datos que cambian ESQUEMA.TABLA , NOMBRE_DEL_CAMPO y el largo CHAR(n). Los reemplazas por los que corresponda a tu BD.

Fuente
http://razorsql.com/features/db2_change_column_type.html

CheckBox con JQuery

Necesito mostrar cierta información en pantalla dependiendo si el usuario activa o desactiva un checkbox. En el desarrollo uso Jquery, por lo cual uso la forma que tiene esta librería para realizar esa funcionalidad.

Por algún motivo no me funciona controlar el evento click de un checkbox, pero al analizarlo en la herramienta online jsfiddle, me di cuenta que no había ningún problema con el código si no habría otro problema en otra parte.

Dejo el código de como controlar el evento click del checkbox  desde Jquery.


  
http://jsfiddle.net/b1x6hyh2/

martes, 9 de diciembre de 2014

Crear una tabla desde un Select (MS SQL)

En el siguiente código,  muestro como crear una tabla a partir de un SELECT en MS SQL.

Creo dos campos de tipo integer (id_cla e id_con) un campo varchar (Observacion_log) y un campo de Fecha (Fecha_log)

En el campo varchar se creará del largo del  string que le pase entre comillas.  En este caso varchar(3).


select 1 as id_cla , 2 as id_con , 'msg' as Observacion_log , getdate() as Fecha_log into Log 


 


miércoles, 3 de diciembre de 2014

Script para exportar estructura y datos MS SQL 2012

Alguien me pregunto como se hacia en MS SQL para exportar un script con la estructura de las tablas (CREATE) y los datos (INSERT). Por lo que me di cuenta que no era tan evidente hacerlo, de modo que lo dejo por acá para quien este en la misma duda.

Primero estando en el Management Studio seleccionar la base de datos que se necesita crear un script. Presionar botón derecho y elegir Tasks, posteriormente elegir Generar Script. Lo demas es practicamente aceptar aceptar. Salvo si lo que quieres es obtener un script para determinados elementos de la base o agregar insert de datos ya que por defecto viene para generar solo la estructura.
 Por ultimo te permite seleccionar si quieres el resultado en el portapapeles , un archivo o un nuevo tab en el Management Studio.


 
Se puede seleccionar toda la base o seleccionar elementos.

 

Donde quieres el resultado. Un archivo en alguna carpeta, un archivo por cada objeto. Poner el resultado en el portapapeles, o una nueva ventana dentro del Management Studio.

  

En types of data to script da 3 opciones: esquema y datos , solo el esquema o solo datos. Para llegar aca se debe presionar el boton Advanced de la ventana anterior.



martes, 2 de diciembre de 2014

Abrir un Excel desde C#

Este código que dejo a continuación, permite abrir un archivo Excel desde c#.  No es llegar y hacer copy paste del código, se debe agregar una referencia a Microsoft.Office.Interop.Excel e indicar en las propiedades de la referencia Embed Interop Type en false. De lo contrario dará como error al ejecutar:


Interop type 'Microsoft.Office.Interop.Excel.ApplicationClass' cannot be embedded. Use the applicable interface instead.




namespace abrirexelwf
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.ApplicationClass excelapp = new Microsoft.Office.Interop.Excel.ApplicationClass();
            excelapp.Visible = true;
            excelapp.Workbooks.Open(@"c:\Archivo.xls", Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing);    
        }
    }


Descargar Fuente
Abrir Excel

lunes, 1 de diciembre de 2014

Error del proveedor subyacente en Open.

Tengo un proyecto en ASP.NET MVC 4 con Entity Framework  5 que estoy publicando en un servidor de pruebas. Pero cuando cambio la cadena de conexión y posteriormente trato de logearme en la aplicación  me aparece el siguiente mensaje tanto en la maquina de desarrollo como en la de pruebas.

Error del proveedor subyacente en Open.
( The underlying provider failed on Open. )

Al debuggear encuentro este mensaje (EntityException was caught) pareciera que quien esta provocando problemas es el Entity Framework.



La forma de resolver esto en desarrollo es eliminando la cadena de conexion modificada y volver a cargar el modelo, pero esto no es valido para el servidor de pruebas.

Pero al revisar mas en detalle la informacion del debuger encuentro que mi problema son permisos del usuario en la base de datos de pruebas. No tiene permisos para hacer SELECT. plop :(

Se denegó el permiso SELECT en el objeto 'xxx', base de datos 'xxx', esquema 'dbo'.
 

Le doy permisos al usuario y sigo con mi instalacion en pruebas.





martes, 11 de noviembre de 2014

Your PC needs to restart. Windows 10

Baje Windows 10 para instalarlo como maquina virtual en un MacBook Pro, usando VirtualBox. Pero al momento de ejecutar por primera vez la maquina virtual, no podia continuar ya que algo había salido mal.

Your PC needs to restart.
Please hold down the power button y bla bla.


Al revisar otros post encontré que mi problema era de configuración. Al momento de crear la maquina coloque como Other Windows la version del SO que estaba creando. Ya que no aparecía Windows 10. 

La solución fue cambiar la version del SO a Windows 8.1 y funciono la instalación.

Fuente




Invalid use a side-effecting operator 'INSERT' within a function.

Cree una funcion, que hace una serie de consultas y retorna un valor. Pero de entre esas consultas se me ocurrio que podria actualizar una tabla y fue ahy donde me encontre con este error:

Invalid use a side-effecting operator 'INSERT' within a function.



¿La razon del error?
En una funcion no se puede realizar acciones que modifiquen el estado de la base de datos. Para eso se debe crear un Procedimiento Almacenado.

Fuente:
http://stackoverflow.com

http://technet.microsoft.com

sábado, 20 de septiembre de 2014

Que aplicación consume la batería de tu iphone

El problema compartido por todos los smartphones es la duración de la batería, en particular los iPhones. En relación a esto,  una característica muy util que trae la version 8 de iOS es que se puede ver cual es el gasto de batería que hace cada aplicación. De tal forma que se puede descubrir cual o cuales son las culpables de llevarse la carga.

Para acceder a esta nueva característica sigue los siguientes pasos:

  1. Ir a Ajustes
  2. Ir a General
  3. Ir a Uso
  4. Ir a Uso de la Bateria 

Tras este el ultimo paso te mostrara la lista de aplicaciones y su uso de batería.


Fuente
iphonehacks.com

jueves, 8 de mayo de 2014

Imprimir Acentos con Zend_Pdf

Estoy trabajando en una extensión para Magento en la cual edito un PDF e imprimo datos que vienen de una base de datos. Mi problema es que cuando intento imprimir textos que tienen acentos estos no aparecen (Magento usa el Frameword Zend, por lo que si tienes problemas para imprimir acentos en Magento u otro software desarrollado usando Zend_Pdf da lo mismo, este tip te va a servir).

Mi código con problemas es este:
 


La solución al código anterior es indicar en el método drawText el formato de codificación necesario como parámetro, en este caso UTF-8.



sábado, 1 de marzo de 2014

Unable to boot - please use a kernel appropriate for your CPU (VirtualBox)

Configure una maquina en VirtualBox  y cuando la eche a andar me apareció el siguiente mensaje:

Unable to boot - please use a kernel appropriate for your CPU


La maquina que estaba configurando era una variante de Debian y elegí justamente esa versión de 32 bits.

La solución que me sirvió fue habilitar la opción  PAE/NX,  En Configuración - Sistema - Procesador.

¿Que es PAE?
PAE  (Physical Address Extension) es una característica de los procesadores x86, que les permite utilizar hasta 4 GB de memoria física.

¿Que es NX?
NX (No Execute) significa No Ejecutar, es una característica adicional de PAE. Que ayuda al procesador a proteger el equipo contra ataques malintencionados.

Estas características se pueden habilitar desde la BIOS (si el equipo es compatible).

Fuentes