martes, 20 de marzo de 2012

shrink log Transaction de SQL Server 2008

Hay algunas veces cuando nos damos cuenta que nuestra BD esta muy pesada, entonces nos ponemos pensar cual es el motivo, en mi caso el motivo principal fue que me di cuenta que el Log habia crecido demasiado, la causa fue por las transacciones realizadas en un ambiente de pruebas, la solucion sencilla y eficaz fue :

  1. Haz una copia de seguridad de Nuestra base de datos.
  2. Ponemos la BD modo SIMPLE -  DataBase/Propiedades/Opciones/Recovery Model /Simple
  3. Encogemos el archivo Log,  Database/Tareas/shrink/Files/ File Type/ Log/reorganización de las páginas antes de liberar espacio no utilizado(reorganize pages before releasing unused space)/Encoger archivo.
  4. Ponemos la BD en modo FULL otra vez y Listo.

Espero les sirva

Saludos.

viernes, 16 de marzo de 2012

with(RowLock,Xlock) SQL SERVER 2008 Bloqueos Exclusivos

Buenas en esta ocasion hablaremos sobre los bloqueos exclusivos en SQL SERVER, ya que nos dimos con un problema.

PROBLEMATICA :
Esta semana estuvimos desarrollando el modulo de Produccion, en este modulo habia un requerimiento especial,nos prohibian el uso del IDENTITY, creo que la mayoria de los desarrolladores principiantes, estan muy acostumbrados al uso del IDENTITY , el requerimiento era para la generacion de Nro de Lotes, en esta tabla no se podia perder ni un solo correlativo, tambien nos pedian el mismo requerimiento para los codigos de todas las tablas.


SOLUCIÓN : 
Bueno en SQL SERVER (2000- 2008), existe una instruccion para resolver este problemas, que es,
with(RowLock,Xlock) , con esta instruccion se obtienen bloqueos exclusivos por fila, es decir puedo bloquear la fila de una tabla, mientras mi transaccion este activa, el problema no es en la BD si no en la aplicación, es decir el SQL CLIENT de .Net no reconoce que la transaccion es exclusiva Y NOS botara una excepción,

Vamos a resumir esta instruccion
 with(RowLock,Xlock) 

RowLock  = Bloquea la fila indicada en el Select. 
 Xlock =  Hace que el bloque sea exclusivo.

Aqui un pequeño basico ejemplo.

CREATE PROC PA_AGREGAR_A
AS 
declare @correlativo numeric
declare @codigoNuevo numeric

select @correlativo  =  CORRELATIVO
from CORRELATIVO
with(RowLock,Xlock)

set @codigoNuevo = @correlativo  +  1

insert into  A values (@codigoNuevo,'Nuevo')

update  CORRELATIVO
set CORRELATIVO.CORRELATIVO = @codigoNuevo



Bueno siendo ya casi media noche me despido 

Saludo.
 

sábado, 10 de marzo de 2012

LA VIDA DEL DESARROLLADOR - RELAX

EN ESTA OCASION UN PEQUEÑO RELAJO, COMO MUCHOS YA HEMOS ESCUCHADO, NUESTRO OFICIO TIENE UN GRAN PARECIDO A LA PROSTITUCION, OJO NO ES UNA BROMA PUES ES LA PURA VERDAD, XD, ASI QUE SI PIENSAS SER DESARROLLADOR HE AQUI UNA PEQUEÑA LISTA DE LO QUE TE ESPERA  XD, LO QUE HARAS POR LO MENOS UN BUEN TIEMPO DE TU VIDA;

  • Generalmente, trabajas hasta tarde. ¡Como las putas!
  • Generalmente, eres más productivo por la noche. ¡Como las putas!
  • Te pagan para mantener al cliente feliz. ¡Como a las putas!
  • Cobras por hora, pero tu tiempo se extiende hasta que termines. ¡Como las putas!
  • Si eres bueno, nunca estás orgulloso de lo que haces. ¡Como las putas!
  • Te recompensan por satisfacer las fantasías de tus clientes. ¡Como a las putas!
    Te sería difícil tener y mantener una familia. ¡Como a las putas!
  • Cuando te preguntan en qué trabajas, no lo puedes explicar. ¡Como las putas!
  • Tus amigos se distancian de ti, y tú sólo andas con otros iguales que tú. ¡Como las putas!
  • El cliente paga tu cuenta del hotel, y por horas trabajadas. ¡Como a las putas!
  • Evalúan tu "capacidad" con horribles pruebas. ¡Como a las putas!
  • El cliente siempre quiere pagar menos y, encima, quiere que hagas maravillas. ¡Como las putas!
  • Cada día, al levantarte, dices: "¡NO VOY A HACER ESTO TODA MI VIDA!". ¡Como las putas!
  • Sin conocer nada de su problema, los clientes esperan que les des el consejo que necesitan. ¡Como las putas!
  • Si las cosas salen mal, es siempre culpa tuya. ¡Como las putas!
  • Tienes que brindarle servicios gratis a tu jefe, amigos y familiares. ¡Como las putas!
SALUDOS ,

XD  XP

lunes, 27 de febrero de 2012

Group By SUM Linq C#

Hoy me vi en una situacion donde debia usar Group By SUM con linq por motivios de tiempo en el que actualmente me encuentro no puedo dar mas explicaciones les muestro el codigo ya que en los proyecto que me encuentro actualmente mi tiempo es cortisimo, bueno hay les envio el codigo que realize :

            var result = from oObjetoGroup in
                             (from oRes in oLista

                              select new
                              {
                                  oRes.pr_NombreProducto,
                                  oRes.pr_NumeroLote,
                                  oRes.pr_CodigoLote,
                                  oRes.pr_CodigoProducto,
                                  oRes.pr_CodigoSede,
                                  oRes.pr_CodigoCompania,
                                  oRes.pr_CodigoAlmacen,
                                  oRes.pr_CantidadPedida,
                                  oRes.pr_Items

                              })

                         group oObjetoGroup by new
                         {
                             oObjetoGroup.pr_NombreProducto,
                             oObjetoGroup.pr_NumeroLote,
                             oObjetoGroup.pr_CodigoLote,
                             oObjetoGroup.pr_CodigoProducto,
                             oObjetoGroup.pr_CodigoSede,
                             oObjetoGroup.pr_CodigoCompania,
                             oObjetoGroup.pr_CodigoAlmacen,
                             oObjetoGroup.pr_CantidadPedida,
                             oObjetoGroup.pr_Items

                         } into groupBy

                         select new
                         {
                             groupBy.Key.pr_CodigoProducto,
                             groupBy.Key.pr_CodigoLote,
                             groupBy.Key.pr_NombreProducto,
                             groupBy.Key.pr_NumeroLote,
                             groupBy.Key.pr_Items,
                             pr_CantidadPedida = groupBy.Sum(oRes => oRes.pr_CantidadPedida)

                         };


esta bastante claro , espero les sirva

Saludos,

viernes, 17 de febrero de 2012

IIS Windows Server 2008 Problemas con Formato de Fechas y Monedas

Buenas, hoy me surgio una excepcion en el servidor de produccion al publicar la aplicacion web, me di con la sorpresa que todo corria correctamente pero el formato de moneda en el cual se estaba guardando no era el correcto osea me estaba reconociendo la coma como punto decimal, lo primero que se nos viene a la mente es la CONFIGURACION REGIONAL DEL SERVIDOR,QUE ES LO CORRECTO, PERO HABIA ALGUN PASO ADICIONAL QUE REALIZAR QUE LUEGO QUE CONFIGURAMOS LOS FORMATOS,UBICACION , ADMINISTRATIVO, DEBEMOS SEGUIR EL SIGUIENTE  PASO 

1.- CONFIGURAR LA CONFIGURACION REGIONAL DE TAL MODO QUE TODO QUEDE CORRECTO ALGO ASI (no explico los pasos anteriores porque son muy basicos),ojo todo debe coincidir como en este caso teniendo en cuenta al usuario IIS_IUSRS.


2.- Nos vamos al cmd  / IISRESET

Reseteamos el IIS y de los mas seguro todo va ha estar correctamente.

Saludos

lunes, 13 de febrero de 2012

BASIC UN LENGUAJE QUE TODAVIA SE ENSEÑA

Me causa un poco de admiraciòn que aun en institutos superiores y en algunas universidades aun se este enseñando el lenguaje Basic (vb.net ,vb6,) NO TENGO NADA EN CONTRA DE LOS PROGRAMADORES DE BASIC, pero yo creo que ya es hora de dar una vuelta  a la pagina y dejar el lenguaje BASIC que poco ha poco va desapareciendo y la verdad no estoy seguro si desaparecera pronto, ESTA NO ES UNA CAMPAÑA ANTI BASIC, PERO EN MI PARTICULARIDAD PREFIERO LOS LENGUAJES que deriven de la hermosa familia C , bueno finalmente ya cada uno elije el lenguaje que mas guste.

Saludos ,

domingo, 29 de enero de 2012

PROBLEMAS AL COMPARTIR SQL CLIENT EN RED

Cuando tratamos de compartir un servidor remoto en SQL SERVER 2008 nos damos cuenta que no nos permite compartir veamos los pasos para poder compartirlo en una red.

1. Verifique el puerto del SQL osea el 1433 se pueda ver desde la maquina cliente.
2. Luego nos vamos al administrador de configuraciones de SQL  SERVER luego seleccionamos SQL SERVER NETWORK CONFIGURATION / PROTOCOLS FOR MSSQLSERVER / TCP -IP / , luego nos vamos a la pestaña IP ADDRESSES Y SELECCIONAMOS TODOS LOS COMBOS A YES EN ACTIVE Y ENABLED y de esta manera nos podremos conectar sin nungun problemas en una red .



Saludos.