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.