martes, 31 de octubre de 2017

Desarrollar Aplicaciones IOS sin emulador de MAC con XAMARIN LIVE PLAYER

Desde los inicios de XAMARIN siempre ha sido una limitante el poder desarrollar aplicaciones IOS por el uso de una MAC para poder utilizar el emulador, la solución viene ahora con Xamarin Live Player incluida VS2017 en versiones posteriores a la 15.4.1

Pasos para activar Xamarin Live Player

Verificar versión de Visual Studio 2017.


Dentro de Visual Studio Ayuda  > Acerca de Visual Studio

















En caso de no tener la versión mínima requerida sera necesario actualizar VS ejecutando el Visual Studio Installer.

Habilitar Xamarin Live Player 

Dentro de VS menu Herramientas > Opciones... >Xamarin > Otro
Activamos Habilitar Xamarin Live Player




















 Instalacion de Xamarin Live Player en nuestro dispositivo IOS

Entramos a AppStore, en mi caso utilizare mi dispositivo iphone 6s con ios 11.0.3, buscamos Xamarin Live Player























Conectar Dispositivo con VS 

Regresamos a VS en la opción del Menú Herramientas  > Xamarin Live Player > Administrar Dispositivos...














Aparecerá un código QR con el que podremos emparejar nuestro dispositivo siempre y cuando estén en red.

Abrimos la app en nuestro dispositivo, seleccionamos Pair to Visual Studio 
leemos el código QR






















Después de emparejar el dispositivo los aparecerá la opción de correr aplicación en dispositivo, aparecerá nuestro dispositivo para seleccionar, nuestra aplicación correrá en nuestro dispositivo.


lunes, 30 de octubre de 2017

Convertir código de Adsense y Google analytics para blogger

Para agregar scripts a tu blog ya sea de Adsense o de google analytics se deben seguir los siguientes pasos.
Ingresar a blogger, seleccionar Tema y dar click en Editar HTML.





Si pegamos tal cual nos da el código  Adsense o de google analytics y guardamos nos mandara un error, para evitar esto accesamos a esta página para convertir el código https://www.bloggertipstricks.com/html-encoder-tool










Pegamos nuestro código y copiamos el texto convertido.



Posteriormente regresamos a blogger en editar html de código, buscamos la etiqueta <head> y pegamos el código copiado, para finalizar guardamos el tema y listo


miércoles, 25 de octubre de 2017

Función para Limpiar caracteres especiales SQL SERVER



CREATE FUNCTION [dbo].[LimpiarCaracteresEspeciales](@cadena varchar(max))
       RETURNS varchar(max)
BEGIN
       DECLARE @pos int,
                    @patron varchar(max);

       Set @patron = '%['+'!''"'+Char(150)+Char(10)+char(13)+Char(9)+Char(34)+char(38)+char(60)+char(62)+char(160)
                                  +char(161)+char(162)+char(163)+char(164)+char(165)+char(166)+char(167)+char(168)+char(169)
                                  +char(170)+char(171)+char(172)+char(173)+char(174)+char(175)+char(176)+char(177)+char(178)
                                  +char(179)+char(180)+char(181)+char(182)+char(183)+char(184)+char(185)+char(186)+char(187)
                                  +char(188)+char(189)+char(190)+char(191)+char(192)+char(193)+char(194)+char(195)+char(196)
                                  +char(197)+char(198)+char(199)+char(200)+char(201)+char(202)+char(203)+char(204)+char(205)
                                  +char(206)+char(207)+char(208)+char(209)+char(210)+char(211)+char(212)+char(213)+char(214)
                                  +char(215)+char(216)+char(217)+char(218)+char(219)+char(220)+char(221)+char(222)+char(223)
                                  +char(224)+char(225)+char(226)+char(227)+char(228)+char(229)+char(230)+char(231)+char(232)
                                  +char(233)+char(234)+char(235)+char(236)+char(237)+char(238)+char(239)+char(240)+char(241)
                                  +char(242)+char(243)+char(244)+char(245)+char(246)+char(247)+char(248)+char(249)+char(250)
                                  +char(251)+char(252)+char(253)+char(254)+char(255)+'.]%';

       SET @Pos = PATINDEX(@patron,@cadena)

       WHILE @Pos > 0 BEGIN
             SET @cadena = STUFF(@cadena, @pos,1,'')
             SET @Pos = PATINDEX(@patron, @cadena)
       END


       RETURN @cadena
END;


lunes, 23 de octubre de 2017

Connection to service socket failed GlobalProtected

Error al conectarse a VPN por GlobalProtected, error “Connection to service socket failed”
















Presionar botón de Windows y escribir Servicios: Y seleccionar servicios

Buscamos en la lista el servicio que se llama PanGPS,


Damos click secundario y seleccionamos Iniciar











Regresar a global protected e intentar de nuevo conectar.
En teoría ya debería poder conectarse.


viernes, 20 de octubre de 2017

Convertir Numero a Letra SQL SERVER Numero a letra

La siguiente función sql server convierte un numero a letra soporta hasta 12 dígitos es decir hasta 999,999,999,999.99

Con este tutorial puedes convertir cualquier numero en letra de forma fácil y rápida con la ayuda de este SP.








CREATE FUNCTION [dbo].[CantidadConLetra]
(
    @Numero             Decimal(18,2)
)
RETURNS Varchar(180)
AS
BEGIN
    DECLARE @ImpLetra Varchar(180)
        DECLARE @lnEntero bigint,
                        @lcRetorno VARCHAR(512),
                        @lnTerna bigint,
                        @lcMiles VARCHAR(512),
                        @lcCadena VARCHAR(512),
                        @lnUnidades bigint,
                        @lnDecenas bigint,
                        @lnCentenas bigint,
                        @lnFraccion bigint
        SELECT  @lnEntero = CAST(@Numero AS bigint),
                        @lnFraccion = (@Numero - @lnEntero) * 100,
                        @lcRetorno = '',
                        @lnTerna = 1
  WHILE @lnEntero > 0
  BEGIN /* WHILE */
            -- Recorro terna por terna
            SELECT @lcCadena = ''
            SELECT @lnUnidades = @lnEntero % 10
            SELECT @lnEntero = CAST(@lnEntero/10 AS bigint)
            SELECT @lnDecenas = @lnEntero % 10
            SELECT @lnEntero = CAST(@lnEntero/10 AS bigint)
            SELECT @lnCentenas = @lnEntero % 10
            SELECT @lnEntero = CAST(@lnEntero/10 AS bigint)
            -- Analizo las unidades
            SELECT @lcCadena =
            CASE /* UNIDADES */
              WHEN @lnUnidades = 1 THEN 'UN ' + @lcCadena
              WHEN @lnUnidades = 2 THEN 'DOS ' + @lcCadena
              WHEN @lnUnidades = 3 THEN 'TRES ' + @lcCadena
              WHEN @lnUnidades = 4 THEN 'CUATRO ' + @lcCadena
              WHEN @lnUnidades = 5 THEN 'CINCO ' + @lcCadena
              WHEN @lnUnidades = 6 THEN 'SEIS ' + @lcCadena
              WHEN @lnUnidades = 7 THEN 'SIETE ' + @lcCadena
              WHEN @lnUnidades = 8 THEN 'OCHO ' + @lcCadena
              WHEN @lnUnidades = 9 THEN 'NUEVE ' + @lcCadena
              ELSE @lcCadena
            END /* UNIDADES */
            -- Analizo las decenas
            SELECT @lcCadena =
            CASE /* DECENAS */
              WHEN @lnDecenas = 1 THEN
                CASE @lnUnidades
                  WHEN 0 THEN 'DIEZ '
                  WHEN 1 THEN 'ONCE '
                  WHEN 2 THEN 'DOCE '
                  WHEN 3 THEN 'TRECE '
                  WHEN 4 THEN 'CATORCE '
                  WHEN 5 THEN 'QUINCE '
                  WHEN 6 THEN 'DIECISEIS '
                  WHEN 7 THEN 'DIECISIETE '
                  WHEN 8 THEN 'DIECIOCHO '
                  WHEN 9 THEN 'DIECINUEVE '
                END
              WHEN @lnDecenas = 2 THEN
              CASE @lnUnidades
                WHEN 0 THEN 'VEINTE '
                ELSE 'VEINTI' + @lcCadena
              END
              WHEN @lnDecenas = 3 THEN
              CASE @lnUnidades
                WHEN 0 THEN 'TREINTA '
                ELSE 'TREINTA Y ' + @lcCadena
              END
              WHEN @lnDecenas = 4 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'CUARENTA'
                    ELSE 'CUARENTA Y ' + @lcCadena
                END
              WHEN @lnDecenas = 5 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'CINCUENTA '
                    ELSE 'CINCUENTA Y ' + @lcCadena
                END
              WHEN @lnDecenas = 6 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'SESENTA '
                    ELSE 'SESENTA Y ' + @lcCadena
                END
              WHEN @lnDecenas = 7 THEN
                 CASE @lnUnidades
                    WHEN 0 THEN 'SETENTA '
                    ELSE 'SETENTA Y ' + @lcCadena
                 END
              WHEN @lnDecenas = 8 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'OCHENTA '
                    ELSE  'OCHENTA Y ' + @lcCadena
                END
              WHEN @lnDecenas = 9 THEN
                CASE @lnUnidades
                    WHEN 0 THEN 'NOVENTA '
                    ELSE 'NOVENTA Y ' + @lcCadena
                END
              ELSE @lcCadena
            END /* DECENAS */
            -- Analizo las centenas
            SELECT @lcCadena =
            CASE /* CENTENAS */
              WHEN @lnCentenas = 1 THEN 'CIENTO ' + @lcCadena
              WHEN @lnCentenas = 2 THEN 'DOSCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 3 THEN 'TRESCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 4 THEN 'CUATROCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 5 THEN 'QUINIENTOS ' + @lcCadena
              WHEN @lnCentenas = 6 THEN 'SEISCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 7 THEN 'SETECIENTOS ' + @lcCadena
              WHEN @lnCentenas = 8 THEN 'OCHOCIENTOS ' + @lcCadena
              WHEN @lnCentenas = 9 THEN 'NOVECIENTOS ' + @lcCadena
              ELSE @lcCadena
            END /* CENTENAS */
            -- Analizo la terna
            SELECT @lcCadena =
            CASE /* TERNA */
              WHEN @lnTerna = 1 THEN @lcCadena
              WHEN @lnTerna = 2 THEN @lcCadena + 'MIL '
              WHEN @lnTerna = 3 THEN @lcCadena + 'MILLONES '
              WHEN @lnTerna = 4 THEN @lcCadena + 'MIL '
              ELSE ''
            END /* TERNA */
            -- Armo el retorno terna a terna
            SELECT @lcRetorno = @lcCadena  + @lcRetorno
            SELECT @lnTerna = @lnTerna + 1
   END /* WHILE */
   IF @lnTerna = 1
       SELECT @lcRetorno = 'CERO'
   DECLARE @sFraccion VARCHAR(15)
   SET @sFraccion = '00' + LTRIM(CAST(@lnFraccion AS varchar))
   SELECT @ImpLetra = RTRIM(@lcRetorno) + ' PESOS ' + SUBSTRING(@sFraccion,LEN(@sFraccion)-1,2) + '/100 M.N.'
   RETURN @ImpLetra
END;


miércoles, 18 de octubre de 2017

FORMATOS DE FECHA EN SQL SERVER

Convierte fecha a una cadena en diferentes formatos:
Formatos de fecha en sql server, con los siguientes convert puede convertir a diferentes formatos

SELECT  CONVERT(CHAR(10),GETDATE(), 23) --AAAA-MM-DD
SELECT  CONVERT(CHAR(10),GETDATE(), 101) --MM/DD/AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 102) --AAAA.MM.DD
SELECT  CONVERT(CHAR(10),GETDATE(), 103) --DD/MM/AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 104) --DD.MM.AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 105) --DD-MM-AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 110) --MM-DD-AAAA
SELECT  CONVERT(CHAR(10),GETDATE(), 111) --AAAA/MM/DD
SELECT  CONVERT(CHAR(8),GETDATE(), 112) --AAAAMMDD
SELECT  CONVERT(CHAR(19),GETDATE(), 20) --AAAA-MM-DD HH:MM:SS (H 1-24)
SELECT  CONVERT(CHAR(23),GETDATE(), 21) --AAAA-MM-DD HH:MM:SS.MSS (H 1-24)
SELECT  CONVERT(CHAR(23),GETDATE(), 25) --AAAA-MM-DD HH:MM:SS.MSS (H 1-24)
SELECT  CONVERT(CHAR(19),GETDATE(), 120) --AAAA-MM-DD HH:MM:SS (H 1-24)
SELECT  CONVERT(CHAR(23),GETDATE(), 121) --AAAA-MM-DD HH:MM:SS.MSS (H 1-24)
SELECT  CONVERT(CHAR(23),GETDATE(), 126) --AAAA-MM-DD?HH:MM:SS.MSS (H 1-24)
SELECT  CONVERT(CHAR(8),GETDATE(), 1) --MM/DD/AA
SELECT  CONVERT(CHAR(8),GETDATE(), 2) --AA.MM.DD
SELECT  CONVERT(CHAR(8),GETDATE(), 3) --DD/MM/AA
SELECT  CONVERT(CHAR(8),GETDATE(), 4) --DD.MM.AA
SELECT  CONVERT(CHAR(8),GETDATE(), 5) --DD-MM-AA
SELECT  CONVERT(CHAR(8),GETDATE(), 10) --MM-DD-AA
SELECT  CONVERT(CHAR(8),GETDATE(), 11) --AA/MM/DD
SELECT  CONVERT(CHAR(6),GETDATE(), 12) --AAMMDD
SELECT  CONVERT(CHAR(20),GETDATE(), 22) --MM/DD/AA H:MM:SS (H 1-12)
SELECT  CONVERT(CHAR(19),GETDATE(), 0)  --Mes DD AAAA h:mmPM (H 1-12)
SELECT  CONVERT(CHAR(9),GETDATE(), 6) --DD mes AA
SELECT  CONVERT(CHAR(10),GETDATE(), 7) --mes DD, AA
SELECT  CONVERT(CHAR(26),GETDATE(), 9) --Mes DD AAAA H:MM:SS:MSS (H 1-12)
SELECT  CONVERT(CHAR(24),GETDATE(), 13) --DD MES AAAA HH:MM:SS:MSS (H 1-24)
SELECT  CONVERT(CHAR(26),GETDATE(), 109) --MES DD AAAA H:MM:SS:MSS (H 1-12)
SELECT  CONVERT(CHAR(19),GETDATE(), 100) --MES DD AAAA H:MM (H 1-12)
SELECT  CONVERT(CHAR(11),GETDATE(), 106) --DD MES AAAA
SELECT  CONVERT(CHAR(12),GETDATE(), 107) --MES DD,AAAA
SELECT  CONVERT(CHAR(24),GETDATE(), 113) --DD MES AAAA HH:MM:SS:MSS (H 1-24)
SELECT  CONVERT(CHAR(8),GETDATE(), 8 ) --HH:MM:SS (H 1-24)
SELECT  CONVERT(CHAR(12),GETDATE(), 14) --HH:MM:SS:MSS (H 1-24)
SELECT  CONVERT(CHAR(8),GETDATE(), 24) --HH:MM:SS (H 1-24)
SELECT  CONVERT(CHAR(8),GETDATE(), 108) --HH:MM:SS (H 1-24)

SELECT  CONVERT(CHAR(12),GETDATE(), 114) --HH:MM:SS:MSS (H 1-24)

martes, 17 de octubre de 2017

Respaldo de tabla SQL SERVER

Respaldo de tabla SQL SERVER

Para respaldar una tabla completa o parcial se utiliza el siguiente qry.

SELECT * INTO [NombreTablaRespaldo] FROM [Nombre TablaaRespaldar] –TABLA COMPLETA
  
SELECT * INTO [NombreTablaRespaldo] FROM [Nombre TablaaRespaldar] where <condiciones> –TABLA PARCIAL


Estos  qrys crean una tabla con el nombre que definas y con la misma estructura de la tabla a respaldar.