domingo, 23 de mayo de 2010

LINQ Generic List con columnas especificas

No hay comentarios.:
Para poder ultilizar el resultado de un Query Linq se pueden utilizar las listas genericas Ejemplos:

public List < customer > GetCustomersCountry(string Country)
{
NortwindDataContext db = new NortwindDataContext();
var query = from cust in db.Customers
select cust;
return query.ToList();
}

public List< customer > GetCustomersCountry(string Country)
{
NortwindDataContext db = new NortwindDataContext();
List < customer > c = (from cust in db.Customers
select cust).ToList< customer >();
return c;
}

Sin embargo si no quieren enviar todas filas si no que algunas, se podria modifica facilmente asi:

public List< customer > GetCustomersCountry(string Country)
{
NortwindDataContext db = new NortwindDataContext();
var query = from cust in db.Customers
select new { cust.CustomerID,cust.CompanyName};
return query.ToList();
}

Pero este le dara el error:
Cannot implicitly convert type 'System.Collections.Generic.List' to 'System.Collections.Generic.List'

Esto es por que Usted no debe devolver instancias anónimas.
No se pueden devolver los tipos anónimos.

Solución:
public IQueryable GetCustomersCountry()
{
NortwindDataContext db = new NortwindDataContext();
IQueryable I =
(
from c in db.Customers
orderby c.CompanyName
select new { CompanyName = c.CompanyName }
);
return I;
}
Ver

jueves, 20 de mayo de 2010

Auditoria de cambios en sql server - Change Data Capture

No hay comentarios.:
SQL Server 2008 tiene una nueva funcionalidad que permite de una forma facil darle seguimiento a nuestras tablas, registra  los cambios (insert, update y delete) que se producen. Esta técnica puede ser aprovechada para muy diversas tareas, por ejemplo para registros de auditoría o carga de Data Warehouses.

Esta funcionalidad se llama Change Data Capture, como funciona:


En primer lugar, debemos de activar Change Data Capture en la base de datos:


USE AdventureWorks2008
GO

EXEC sys.sp_cdc_enable_db
GO

Al habilitar una base de datos para Change Data Tracking, se crea en esa base de datos un esquema denominada cdc y un usuario con el mismo nombre, así como las tablas de metadatos necesarios para el funcionamiento. A continuación, y tras haber comprobado que el servicio SQL Server Agent está iniciado, habilitaremos las tablas que deseamos comprobar. En el siguiente ejemplo se habilita el seguimiento para la tabla HumanResources.Department:


EXECUTE sys.sp_cdc_enable_table
@source_schema = N'HumanResources'
, @source_name = N'Department'
, @role_name = N'cdc_Admin';
GO

Para utilizar Change Tracking, debemos de activarlo, de modo similar a Change Data Capture, primero a nivel de base de datos y después, seleccionando la tabla, como muestra el siguiente código.


ALTER DATABASE AdventureWorks2008
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
GO

ALTER TABLE HumanResources.Department
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)

Para ver lo cambiado ver tablas del sistema.

__$operation

Identifica la operación del lenguaje de manipulación de datos (DML) necesaria para aplicar la fila de datos modificados al origen de datos de destino. Puede ser uno de los siguientes elementos:

1 = eliminar
2 = insertar
3 = actualización (los valores de columna capturados son los de antes de la operación de actualización). Este valor solamente se aplica cuando se especifica la opción de filtro de filas 'all update old'.
4 = actualización (los valores de columna capturados son los de después de la operación de actualización)


Nota:
solo funciona con las siguientes versiones:
Enterprise, Developer y Evaluation.

documentacion:
http://msdn.microsoft.com/en-us/library/bb522489.aspx
Ver

miércoles, 19 de mayo de 2010

Criptogia en base datos

No hay comentarios.:
Que es Criptogia

En ocasiones se emplean los verbos encriptar y cifrar como sinónimos, por si en algun ejemplo no dice solo Criptologia.
Encriptar Base de datos:

Usted puede tomar varias precauciones para proteger la base de datos, como diseñar un sistema seguro, cifrar los datos confidenciales e instalar un firewall alrededor de los servidores de bases de datos. Sin embargo, si se diera el caso de un robo de medios físicos (como unidades de disco o cintas de copia de seguridad), un usuario malintencionado sólo tendría que restaurar o adjuntar la base de datos y examinar los datos. Una solución consiste en cifrar los datos confidenciales en la base de datos y usar un certificado para proteger las claves que se utilizan para cifrarlos. Esto evita que utilice los datos cualquiera que carezca de las claves, pero este tipo de protección debe planearse de antemano.

El cifrado de datos transparente (TDE) cifra el almacenamiento de una base de datos completa. TDE cifra los datos utilizando una clave simétrica conocida como clave de cifrado de base de datos,

Adjunto Imagen de como funciona.

Como habilitarlo:

http://msdn.microsoft.com/es-es/library/cc645957.aspx

http://msdn.microsoft.com/es-es/library/bb934049.aspx
Como funciona a bajo nivel el TDE

http://msdn.microsoft.com/en-us/library/cc278098.aspx
__________________________________________________________________________________________

Cifrar una columna de datos

puede utilizar la función ENCRYPTBYKEY que cifra datos utilizando una clave simétrica.

Esto sirve para encriptar campos por ejemplo pasword, No. seguro social, etc.

Ejemplo practicos

http://msdn.microsoft.com/es-es/library/ms179331.aspx


http://msdn.microsoft.com/es-es/library/ms174361.aspx - Encript

http://msdn.microsoft.com/es-es/library/ms181860.aspx - deEncript
_______________________________________________________________________________

Elegir un algoritmo de cifrado

El cifrado es una de las medidas defensivas con que cuenta cualquier administrador que desee proteger una instancia de SQL Server.

Los algoritmos de cifrado definen transformaciones de datos que los usuarios no autorizados no pueden revertir con facilidad. SQL Server permite a los administradores y los programadores elegir entre varios algoritmos, incluidos DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, RC4 de 128 bits, DESX, AES de 128 bits, AES de 192 bits y AES de 256 bits.

Ningún algoritmo único resulta idóneo para todas las situaciones. Además, ofrecer información detallada sobre las ventajas de cada uno queda fuera del ámbito de los Libros en pantalla de SQL Server. No obstante, se aplican los siguientes principios generales:

  • El cifrado seguro suele consumir más recursos de la CPU que un cifrado menos seguro.
  • Las claves largas suelen producir un cifrado más seguro que las claves cortas.
  • El cifrado asimétrico es más seguro que el simétrico con la misma longitud de clave, pero es relativamente lento.
  • Los cifrados en bloque con claves largas son más seguros que los cifrados en secuencia.
  • Las contraseñas largas y complejas son más seguras que las contraseñas cortas.
  • Si cifra una gran cantidad de datos, debe cifrar los datos con una clave simétrica y cifrar la clave simétrica con una clave asimétrica.
  • Los datos cifrados no se pueden comprimir, pero los datos comprimidos se pueden cifrar. Si utiliza compresión, debe comprimir los datos antes de cifrarlos. li>
http://msdn.microsoft.com/es-es/library/ms345262.aspx
Ver

martes, 18 de mayo de 2010

Mi mujer - Chiste

1 comentario:
Mi mujer se sentó a mi lado, en el sofá, mientra yo veía la TV y cambiaba de canal. Ella preguntó:
¿Qué hay en la tele?
Y yo respondí:
Polvo.
Y, entonces, la discusión empezó...
---------------------------------------------------------------------------------------
Cuando volví a casa -ayer por la noche- mi mujer me exigió:
Quiero que me lleves a un sitio caro.
La llevé a una gasolinera.
Y, entonces la pelea empezó...
---------------------------------------------------------------------------------------
Mi mujer y yo estábamos sentados a la mesa de un bar; yo me fijaba en una chica borracha de la mesa contigua; ella estaba sola y balanceaba su trago. Mi mujer preguntó:
¿La conoces...?
Sí... es una antigua novia... Sé que comenzó a beber después de que terminamos, hace ya varios años. No sé por qué no ha vuelto a estar sobria...
¡A la puta!... nunca pensé que alguien pudiese celebrar algo durante tanto tiempo.
Y, entonces, la disputa empezó...
---------------------------------------------------------------------------------------
Después de retirarme, fui hasta el Seguro Social para recibir la carta de jubilación.
La mujer que me atendió me solicitó algún documento de identidad, para verificar mi edad. Me busqué en todos lados y me di cuenta de que había dejado todos mis documentos en casa.
La funcionaria me dijo que lo sentía mucho, pero que tendría que ir a buscarlos a casa y regresar más tarde. En eso, me dijo:
Desabotónese la camisa...
Lo hice y dejé al descubierto mis vellos pectorales, plateados y rizados. Ella me dijo:
Eso es prueba suficiente, para mí.
Y procesó mi jubilación.
Cuando llegué a casa, entusiasmado, le conté a mi mujer lo que me sucedió. Ella me dijo:
Vaya... ¿por qué no te bajaste los pantalones?... Pudiste haber conseguido una pensión por invalidez permanente...
Y, entonces, la riña empezó...
---------------------------------------------------------------------------------------
La mujer está desnuda, viéndose en el espejo del cuarto. No está feliz con lo que ve y le dice a su marido:
Me siento horrible... parezco vieja, gorda y fea... En verdad necesito que me elogies algo...
Tienes una vista perfecta..
Y, entonces, la batalla empezó...
----------------------------------------------------------------------------------------
Llevé a mi mujer a un restaurante. El camarero me preguntó:
¿El señor desea ordenar...?
Quiero un churrasco bien jugoso, por favor.
El camarero volvió a preguntarme:
¿No está preocupado por la vaca loca?
A lo que respondí:
No, ella misma puede pedir lo que quiera...
Y, entonces, la contienda empezó...
----------------------------------------------------------------------------------------
El marido fue a pasar consulta con el médico.. Al volver, su mujer, preocupada, le pregunta:
Y... ¿qué te dijo el médico?
A lo que respondí:
Me prohibió las cosas grasosas... así que ya no haremos el amor.
Entonces, la gresca empezó...
----------------------------------------------------------------------------------------
La mujer de 47 años, desnuda, mira a su marido desde el baño y le pregunta:
¿Tú crees que realmente represento la edad que tengo?
Si miro tu cabello, te doy 29... Si miro tu busto, te doy 32... Si miro tus caderas, te doy 36... Si miro tus piernas, te doy 30...
Mi amor, ¡Muchas gracias!... ¿Realmente piensas eso?
Espérate, que aún no termino de sumar...
Y, entonces, la trifulca empezó...
----------------------------------------------------------------------------------------
Luego de haber tenido una fuerte discusión, la pareja va en el auto, sin hablarse.
Al pasar frente a un criadero de cerdos, él comenta:
No sabía que tienes parientes viviendo por aquí....
Sí... mis suegros.
Y el zafarrancho empezó de nuevo....
Ver

lunes, 10 de mayo de 2010

Teoría de crepúsculo ( Twilight ) personalidades comparadas con animales.

No hay comentarios.:
Recientemente vi una teoría de crepúsculo ( Twilight ) donde comparan las personalidades con animales.
Jacob - perroEsme - Tigre Carlisle - Panda
Emmett - OsoJasper - Zorro Rosalie - Pavo Real
Alice - GatoBella - Cordero Edward-León


Articulo original - Proporcionado por Cintya.
http://robbuz.deviantart.com/gallery/#Animal-Series
Ver

jueves, 6 de mayo de 2010

Base de datos esta recovery mode

No hay comentarios.:
¿Su base de datos esta en modo recuperación (recovery mode ) sin ninguna motivo y sin iniciar ningún restore?

si su respuesta "si" usted esta en un problema jajja

pero se soluciona así:


use Nombredb
DBCC CHECKDB


es un post simple pero de repente les ayuda.
Ver

lunes, 3 de mayo de 2010

Como cambiar de pagina wpf - Silverlight

No hay comentarios.:
Este ejemplo es un poco sencillo para las personas que están familiarizados con wfp pero quiero iniciar desde el principio en la explicación de wpf – Silverlight.

Si aun no estas trabajando con silverlight te invito a ingresar a:
Cómo: Crear un nuevo proyecto de Silverlight

Bueno ahora tienes una page con el nombre MainPage.xaml, vamos agregar una 2 page que se ejemplo.

1.) En el menu Project seleccione add new item...
o clic derecho add new item... sobre su proyecto.




Aparecera la siguiente ventana.

2.) Ingrese el nombre de la nueva pagina en este caso ejemplo y luego agregar.

3.) Regrese a la pagina MainPage.xaml, agregue un boton y precione doble clic sobre el mismo para que le genere el evento clic.

Deberia quedar así:

Código de XAML
< Button Content="Entrar" Height="23" HorizontalAlignment="Left" Margin="142,163,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" / >

Código de C#
private void button1_Click(object sender, RoutedEventArgs e)
{

}

Y aqui esta el codigo para cambiarse a la pagina que acaba de gregar( Ejemplo.xaml ) este deberia de quedar en medio de las llaves {}:


Ejemplo nueva = new Ejemplo();
this.Content = nueva;


codigo completo:
private void button1_Click(object sender, RoutedEventArgs e)
{
Ejemplo nueva = new Ejemplo();
this.Content = nueva;


}
Ver