IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'NOMBRE_PROC') AND type IN ( N'P', N'PC' ))
begin
drop PROCEDURE [dbo].[NOMBRE_PROC]
end
GO
CREATE dbo.NOMBRE_PROC
(...).....
¿Por qué aguardas con impaciencia las cosas? Si son inútiles para tu vida, inútil es también aguardarlas. Si son necesarias, ellas vendrán y vendrán a tiempo. Amado Nervo
lunes, 18 de mayo de 2015
domingo, 3 de mayo de 2015
MSDTC y .Net: MSDTC no está disponible en el servidor 'X'.
El error que indica que el Microsoft Distributed Transaction Coordinator no está disponible puede significar a que debemos configurarlo, de esta manera ya no recibimos el mensaje de error en .Net cuando utilizamos TransactionScope.
1º En ventana de ejecución poner: comexp.msc
2º Expanda Servicios de componentes, equipos, Mi PC, Administrador de transacciones distribuidas, haga DTC Localy, a continuación, haga clic en Propiedades.
3º En el tab Segumiento puede activar "Seguimiento de todas las trasacciones".
1º En ventana de ejecución poner: comexp.msc
2º Expanda Servicios de componentes, equipos, Mi PC, Administrador de transacciones distribuidas, haga DTC Localy, a continuación, haga clic en Propiedades.
3º En el tab Segumiento puede activar "Seguimiento de todas las trasacciones".
sábado, 2 de mayo de 2015
Sql Server: Eliminar usuario de base de datos.
Para realizar esta tarea lo mejor es estar logueado con otro usuario con privilegios y talvez pueda ser necesario reiniciar el servicio de SQL Server para cancelar todas las posibles conexiones a la bases de datos asociadas al usuario que queremos eliminar. Comandos SQL para eliminar usuario de una base de datos:
1º Averiguar a cuáles esquemas pertenece el usuario:
SELECT name FROM sys.schemas WHERE principal_id = USER_ID('usuarioPruebas')
2º Con la lista anterior, se reemplaza en esta siguiente consulta la palabra SchemaName, por el verdadero nombre del esquema para eliminar al usuario totalmente:
ALTER AUTHORIZATION ON SCHEMA::SchemaName TO dbo
GO
DROP USER usuarioPruebas
1º Averiguar a cuáles esquemas pertenece el usuario:
SELECT name FROM sys.schemas WHERE principal_id = USER_ID('usuarioPruebas')
2º Con la lista anterior, se reemplaza en esta siguiente consulta la palabra SchemaName, por el verdadero nombre del esquema para eliminar al usuario totalmente:
ALTER AUTHORIZATION ON SCHEMA::SchemaName TO dbo
GO
DROP USER usuarioPruebas
martes, 30 de diciembre de 2014
SQL SERVER: Consultas recursivas
Esta técnica sirve para conocer los registros hijos en forma recursiva. También puede funcionar en tablas que se referencian a si mismas siempre y cuando se apliquen los ajustes en las consultas.
Case 1
| Employee ID | Name | Supervisor ID |
| 001 | Paroar Habib | Null |
| 002 | Sumon Mazumder | 001 |
| 003 | Kalim Uddin | 001 |
| 004 | Jewel Ahmed | 002 |
Case 2
| vmenuid | vmenuname | vparent |
| M001 | HR System | Null |
| M002 | Payroll | M001 |
| M003 | Salary Benefits | M002 |
| M004 | Recruitment | M001 |
Aplicando la consulta:
WITH security_menu_Recursive(Parent,MenuId,MenuName,LEVEL)
AS
(
SELECT vparent,vmenuid,vmenuname,0 AS LEVEL FROM dbo.SecurityMenu WHERE vParent = null
UNION ALL
SELECT vparent,vmenuid,vmenuname,Level + 1 AS LEVEL FROM dbo.SecurityMenu
INNER JOIN security_menu_Recursive AS smr ON smr.menuid = dbo.SecurityMenu.vParent
)
SELECT parent,menuid,menuname,LEVEL FROM security_menu_Recursive
Resultado:
| Parent | MenuID | MenuName | Level |
| Null | M001 | HR System | 0 |
| M001 | M002 | Payroll | 1 |
| M001 | M004 | Recruitment | 1 |
| M002 | M003 | Salary Benefits | 2 |
Ejemplo completo en codeproject.com
sábado, 20 de septiembre de 2014
VS2012: Microsoft SQL Server Data Tools - Business Intelligence for Visual Studio 2012
Sitio para descargar Microsoft SQL Server Data Tools - Business Intelligence for Visual Studio 2012
Con esta herramienta se pueden ver los reportes de Reporting Services en la versión de Visual Studio 2012. Solo basta con abrir una ventana individual de proyecto de reportes y listo, haga doble clic al reporte para verlo en modo diseño.
Con esta herramienta se pueden ver los reportes de Reporting Services en la versión de Visual Studio 2012. Solo basta con abrir una ventana individual de proyecto de reportes y listo, haga doble clic al reporte para verlo en modo diseño.
sábado, 25 de enero de 2014
jQuery: método val() vs text()
En ocasiones uno quiere establecer un texto a un span utilizando jQuery, pero por aguna razón no funciona, veamos un ejemplo:
Código HTML:
<span>Hola Mundo!!!</span>
<script>
$('span').val('Hola Mundo!!!');
</script>
Y uno se queda pensando, por qué rayos no aparece el texto en el span?, y esa pregunta se la repite uno un buen rato!
La respuesta del por qué no aparece el texto en el span es porque el span no tiene el atributo value. Hay que recordar una cosa y es que todos los elementos HTML si tienen los mismos atributos pero es solo un conjunto de atributos, muy conocidos por cierto!. Se les conoce como "Global Attributes". Ejemplo de atributos globales pueden ser: id, style, class, lang, title, etc. Sin embargo existen otros tipos de atributos únicos para algunos elementos.
En HTML existe el concepto de "Content Model", se refiere al contenido que pueden tener los elementos de HTML. El contenido de un elemento puede ser:
En HTML también existen dos tipos de elementos según el modelo de contenido que pueden manejar:
El elemento span del ejemplo inicial, es un elemento normal con etiqueta de inicio y final y el contenido que puede manejar un span va entre ambas etiquetas. En cambio un elemento input es un elemento que no puede contener datos y eso se debe a que el elemento input es un elemento único o singular, no está hecho para encerrar texto u otros elementos.
Un elemento <input> está hecho para formularios, y tiene varias formas de presentación como por ejemplo una casilla de verificación, un botón de radio, un control escondido (hidden), un cuadro de texto, password, file, un botón, etc.
Un span no tiene el atributo "value" en cambio un input si lo tiene. He ahí la diferencia del por qué con la propiedad val() de jQuery no se puede establecer un texto para el elemento span.
En jQuery existen formas para asignar texto a un elemento y una de ellas es utilizando el método val(), text() o html(). Lo que caracteriza a cada uno de esos métodos es lo siguiente:
val() ==> Modifica el valor del atributo "value" de todos los elementos que tengan el atributo "value". Los elementos que tienen el atributo value son: input, option, param, button, li.
Código:
<input id="inputEjemplo" type="text" value="" />
$("#inputEjemplo").val("Hola mundo!!!")
Resultado:
<input id="inputEjemplo" type="text" value="" />
text() ==> Modifica el valor de contenido que pueden encerrar todos los elementos que poseen etiqueta de cierre. El texto que se asigna es texto plano (text plain) por lo que si esperamos poner texto formateado con color, tamaño, etc, no es posible.
Código:
<span id="ejemplo"></span>
$("#ejemplo").text("<b>Hola mundo!!!</b>")
Resultado:
Hola mundo!!!
html() ==> Modifica el valor de contenido que pueden encerrar todos los elementos que poseen etiqueta de cierre. El texto que se asigna puede ser texto plano o texto en formato html.
Código:
<span id="ejemplo"></span>
$("#ejemplo").html("<b>Hola mundo!!!</b>")
Resultado:
Hola mundo!!!
Código HTML:
<span>Hola Mundo!!!</span>
<script>
$('span').val('Hola Mundo!!!');
</script>
Y uno se queda pensando, por qué rayos no aparece el texto en el span?, y esa pregunta se la repite uno un buen rato!
La respuesta del por qué no aparece el texto en el span es porque el span no tiene el atributo value. Hay que recordar una cosa y es que todos los elementos HTML si tienen los mismos atributos pero es solo un conjunto de atributos, muy conocidos por cierto!. Se les conoce como "Global Attributes". Ejemplo de atributos globales pueden ser: id, style, class, lang, title, etc. Sin embargo existen otros tipos de atributos únicos para algunos elementos.
En HTML existe el concepto de "Content Model", se refiere al contenido que pueden tener los elementos de HTML. El contenido de un elemento puede ser:
- caracteres de datos.
- comentarios.
- otros elementos html.
En HTML también existen dos tipos de elementos según el modelo de contenido que pueden manejar:
- elementos con etiquetas de inicio y final. Como por ejemplo: p, div, b, table, span, etc.
- elementos únicos, son elementos que no tienen un elemento de cierre: input, link, meta, img.
El elemento span del ejemplo inicial, es un elemento normal con etiqueta de inicio y final y el contenido que puede manejar un span va entre ambas etiquetas. En cambio un elemento input es un elemento que no puede contener datos y eso se debe a que el elemento input es un elemento único o singular, no está hecho para encerrar texto u otros elementos.
Un elemento <input> está hecho para formularios, y tiene varias formas de presentación como por ejemplo una casilla de verificación, un botón de radio, un control escondido (hidden), un cuadro de texto, password, file, un botón, etc.
Un span no tiene el atributo "value" en cambio un input si lo tiene. He ahí la diferencia del por qué con la propiedad val() de jQuery no se puede establecer un texto para el elemento span.
En jQuery existen formas para asignar texto a un elemento y una de ellas es utilizando el método val(), text() o html(). Lo que caracteriza a cada uno de esos métodos es lo siguiente:
val() ==> Modifica el valor del atributo "value" de todos los elementos que tengan el atributo "value". Los elementos que tienen el atributo value son: input, option, param, button, li.
Código:
<input id="inputEjemplo" type="text" value="" />
$("#inputEjemplo").val("Hola mundo!!!")
Resultado:
<input id="inputEjemplo" type="text" value="" />
text() ==> Modifica el valor de contenido que pueden encerrar todos los elementos que poseen etiqueta de cierre. El texto que se asigna es texto plano (text plain) por lo que si esperamos poner texto formateado con color, tamaño, etc, no es posible.
Código:
<span id="ejemplo"></span>
$("#ejemplo").text("<b>Hola mundo!!!</b>")
Resultado:
Hola mundo!!!
html() ==> Modifica el valor de contenido que pueden encerrar todos los elementos que poseen etiqueta de cierre. El texto que se asigna puede ser texto plano o texto en formato html.
Código:
<span id="ejemplo"></span>
$("#ejemplo").html("<b>Hola mundo!!!</b>")
Resultado:
Hola mundo!!!
viernes, 3 de enero de 2014
JQuery: Tomar fecha de un control Datepicker y devolverla en otro formato!
Tomar la fecha del control datepicker y
posteriormente presentarla en pantalla en el formato deseado. Se usa el método $.datepicker.formatDate para convertir la fecha en otro formato.
//Obtener
la fecha del control datepicker.
var
fecha = $('#txtFechaNacimiento').datepicker('getDate');
//Mostrar
la fecha en un formato deseado, en este caso queremos año-mes-día.
alert($.datepicker.formatDate('yy-mm-dd',
fecha))
Se pueden crear muchos formatos combinando diferentes literales. En la página oficial del control Datepicker se explica mejor los tipos de formatos. La lista de literales que se pueden usar son:
Se pueden crear muchos formatos combinando diferentes literales. En la página oficial del control Datepicker se explica mejor los tipos de formatos. La lista de literales que se pueden usar son:
- d - day of month (no leading zero)
- dd - day of month (two digit)
- o - day of year (no leading zeros)
- oo - day of year (three digit)
- D - day name short
- DD - day name long
- m - month of year (no leading zero)
- mm - month of year (two digit)
- M - month name short
- MM - month name long
- y - year (two digit)
- yy - year (four digit)
- @ - Unix timestamp (ms since 01/01/1970)
- ! - Windows ticks (100ns since 01/01/0001)
- '...' - literal text
- '' - single quote
- anything else - literal text
domingo, 15 de diciembre de 2013
WCF: Bad request? - Dos razones por las cuales ocurre.
Una razón por la cual un servicio responde con la famosa respuesta "Bad Request" es porque un nombre de parámetro en el lado del cliente no tiene el mismo nombre que el nombre del parámetro en la definición del contrato.
Otra razón es el valor de los parámetros que se están pasando al servicio. Si en el lado del cliente el parámetro Edad se pasa con valor -1 pero en el lado del servidor ese parámetro es de tipo Byte, se produce el error y con buena razón. Entonces a revisar también los valores que se pasan por parámetro!
Otra razón es el valor de los parámetros que se están pasando al servicio. Si en el lado del cliente el parámetro Edad se pasa con valor -1 pero en el lado del servidor ese parámetro es de tipo Byte, se produce el error y con buena razón. Entonces a revisar también los valores que se pasan por parámetro!
jueves, 12 de diciembre de 2013
Obtener una página web usando $.get de jquery
Ejemplo:
$.get("rutapagina.html", function (data) {
//callback function
});
$.get("rutapagina.html", function (data) {
//callback function
});
domingo, 29 de septiembre de 2013
VirtualBox: Corregir problema con UUID para reutilizar discos virtuales.
Un compañero me preguntó si había usado la opción de clonado en VirtualBox ya que ocupaba un sistema limpio varias veces, sin embargo no pudo porque le aparecía el siguiente error:
Resulta que sí me ocurrió ese error una vez, de hecho la opción de clonado no es necesario que la utilice para lo que él quería hacer porque tarda horas en clonarse. Lo más fácil es utilizar un comando para cambiar el UUID (identificador universal único).
En linux:
VBoxManage internalcommands setvdiuuid /path/to/Test.vdi
En Windows:
C:\Program Files\Oracle\VirtualBox\VBoxManage.exe internalcommands sethduuid "D:\Virtual Disks\Test\Test.vdi"
Resulta que sí me ocurrió ese error una vez, de hecho la opción de clonado no es necesario que la utilice para lo que él quería hacer porque tarda horas en clonarse. Lo más fácil es utilizar un comando para cambiar el UUID (identificador universal único).
En linux:
VBoxManage internalcommands setvdiuuid /path/to/Test.vdi
En Windows:
C:\Program Files\Oracle\VirtualBox\VBoxManage.exe internalcommands sethduuid "D:\Virtual Disks\Test\Test.vdi"
domingo, 2 de junio de 2013
Javascript: Cómo obtener los objetos vinculados al objeto window dentro de un iframe
Utilizando JQuery o javascript:
$('#iframeName').get(0).contentWindow.window
$('#iframeName')[0].contentWindow.window
document.getElementById('iframeName').contentWindow.window
Con cualquiera de las sentencias anteriores se logra obtener referencia a un objeto creado por un usuario o referenciar los objetos hijos de window. Ejemplo:
document.getElementById('iframeName').contentWindow.window.document
$('#iframeName').get(0).contentWindow.window
$('#iframeName')[0].contentWindow.window
document.getElementById('iframeName').contentWindow.window
Con cualquiera de las sentencias anteriores se logra obtener referencia a un objeto creado por un usuario o referenciar los objetos hijos de window. Ejemplo:
document.getElementById('iframeName').contentWindow.window.document
sábado, 25 de mayo de 2013
Javascript: Copiar texto en portapapeles en IE
Código para poder copiar datos en el portapapeles del sistema operativo. Válido solo en IE:
var content = document.getElementById('txtHiddenCopyUrl');
content.focus();
content.select();
range = content.createTextRange();
range.execCommand("Copy");
window.status = "Contents copied to clipboard";
setTimeout("window.status=''", 1800);
El caso anterior sirve por ejemplo si tenemos un textarea, en otros casos podemos copiar directamente en el portapapeles usando solo una línea de código:
window.clipboardData.setData("Text", variableWithText);
donde variableWithText es una variable que contiene el texto para copiar en el portapaples.
var content = document.getElementById('txtHiddenCopyUrl');
content.focus();
content.select();
range = content.createTextRange();
range.execCommand("Copy");
window.status = "Contents copied to clipboard";
setTimeout("window.status=''", 1800);
El caso anterior sirve por ejemplo si tenemos un textarea, en otros casos podemos copiar directamente en el portapapeles usando solo una línea de código:
window.clipboardData.setData("Text", variableWithText);
donde variableWithText es una variable que contiene el texto para copiar en el portapaples.
Suscribirse a:
Entradas (Atom)


