Comparte este post:

# re: Console.Writeline("Hola Mundo Cruel"');

Wednesday, June 13, 2007 8:57 AM by José A. Fernández

Hola Esteban

Bienvenido a Geeks.ms, como me dijeron a mi...

Espero disfrutar tambien de tus articulos.

# re: Console.Writeline("Hola Mundo Cruel"');

Wednesday, June 13, 2007 9:03 AM by Jorge Serrano

¡¡¡BIENVENIDO Esteban!!!

Muchas gracias por mentarme (¡que sorpresa!), y espero que nos puedas contar cosas interesantísimas.

Algo (sugerencia por si acaso te apetece) de lo que no se ha hablado apenas en Geeks.ms, es DotNetNuke, sus skins, como se instala, como se gestiona, trucos,... es un mundo interesantísimo dónde muchas empresas ponen sus ojos a la hora de crear un sitio Web. Puede ser un tema sin explotar en el cuál puedas contarnos tus experiencias y vivencias, aunque seguro que puedes hacer lo mismo con cualquier tema que quieras tocar.

Lo dicho, bienvenido y espero que nos puedas contar pronto muchas cosas interesantes. :-)

# re: Console.Writeline("Hola Mundo Cruel"');

Wednesday, June 13, 2007 9:35 AM by Isaac Fernandez

BIENVENIDO Esteban !!!!!

Yo tb espero poder sacarle jugo a tu nuevo Blog y como dice PataNegra Serrano aka Jorge, podría ser interesante que nos instruyeras sobre DotNetNuke :)

Salu2

# re: Console.Writeline("Hola Mundo Cruel"');

Wednesday, June 13, 2007 11:26 PM by Rodrigo Corral

¡Bienvenido Esteban!

# re: Console.Writeline("Hola Mundo Cruel"');

Thursday, June 14, 2007 11:11 PM by Percy Reyes

Hola Esteban!!!

Ps que más, eres bienvenido!!!, estoy a la espera de tus post, seguro que serán interesantes....

Por cierto, mi nombre es Percy Reyes, no "Percey" ... me regalaste un "e" demás ;)...

Saludos, y éxitos...

Nuevamente bienvenido!!!.

Percy Reyes,

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, July 26, 2007 5:29 PM by ivan

Pudes ingresar ese mismo codigo en visual basic , si puedes te lo agradeceria un millon.

Gracias

# re: Fileupload con progress bar en Asp.Net 2.0

Friday, July 27, 2007 5:27 PM by Esteban Zavala

Ivan, ahi publique el codigo en Visual Basic, Saludos

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, August 02, 2007 4:14 PM by Xavier

hola me gustaria saber como cambiarle el nombre al archivo por un codigo que yo tengo

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, August 02, 2007 4:14 PM by Xavier

hola me gustaria saber como cambiarle el nombre al archivo por un codigo que yo tengo gracias

# re: Fileupload con progress bar en Asp.Net 2.0

Saturday, August 04, 2007 3:02 AM by Esteban Zavala

hola xavier, explicame mejor que quieres hacer.

Saludos

# re: Fileupload con progress bar en Asp.Net 2.0

Sunday, October 07, 2007 2:23 PM by Julio

Muy bueno el ejemplo me fue de mucha utilidad. Aprovecho de paso, para hacerte una consulta: sabes si es posible obtener determinados datos del archivo del cual estas haciendo upload? Necesitaria saber cual fue la fecha de ultima modificación del mismo.

Saludos,

Julio

# re: Fileupload con progress bar en Asp.Net 2.0

Monday, October 15, 2007 7:43 PM by Falcon

Hola me ha servido bastante este codigo!! agradezco a tu persona que se tomo la molestia de publicar dicho codigo felicidades... ha solo para mencionar que el codigo vb despues de

Thread.Sleep(2000)

'hay que agregarle el

Clear()

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, November 01, 2007 8:48 PM by Sergio

Barbaro pero donde dice:

Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

deberia decir:

Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click

Saludos

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, November 08, 2007 9:59 PM by Esteban Zavala

Saludos Sergio!!!

Gracias por tu aclaracion, es bueno destacar que eso lo hice cambiandolo de pronto con notepad ++, muy buena tu aportacion

# re: Fileupload con progress bar en Asp.Net 2.0

Tuesday, November 13, 2007 8:09 PM by Aldo

Hola, estoy tratando de usar tu codigo pero la pagina donde la estoy metiendo el ascx, esta en una master, ¿Crees qué eso le este afectando? por q no me muestra el progress bar

# re: Microsoft ofrece $44.6 Billones por Yahoo

Friday, February 01, 2008 9:16 PM by PabloNetrix

Esto...

Son 44.600 (cuarenta y cuatro mil seiscientos) millones de dólares.

El "billion" anglosajón es diferente al billón latino (un millón de millones).

Sólo es un apunte.

Saludos

PS: Cómo me arrepiento de no haber invertido pasta en acciones de Yahoo hace un mes... Yo esto lo veía venir... :-(

# re: Microsoft ofrece $44.6 Billones por Yahoo

Friday, February 01, 2008 10:36 PM by Esteban Zavala

Mil gracias!!!

# re: Instalar Windows Vista SP1 desde Windows Update

Thursday, February 14, 2008 5:37 PM by astilla

pudiste instalarlo? porq yo baje el RTM desde p2p y me tira un error cuando comienza a hacer la instalacion.

# [VISTA] Service Pack 1 disponible para descargar desde MSDN y TechNet

Thursday, February 14, 2008 7:21 PM by El Bruno

Buenas, cansado de los diferentes releases del Service Pack 1 de Vista, veo un interesante truquillo

# [VISTA] Service Pack 1 disponible para descargar desde MSDN y TechNet

Thursday, February 14, 2008 7:21 PM by El Bruno

Buenas, cansado de los diferentes releases del Service Pack 1 de Vista, veo un interesante truquillo

# re: Instalar Windows Vista SP1 desde Windows Update

Thursday, February 14, 2008 7:54 PM by Esteban Zavala

Saludos astilla, si ya lo instalamos y nos corre super bien, no tengo explicacion para tu problema

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, February 14, 2008 9:46 PM by ebg

Oye que buen articulo, me ha sido muy util.. gracias

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, February 21, 2008 6:21 PM by JONASTAURO

hola amigo esta interesante tu articulo, me podrias mandar el codigo a mi correo jonasjimenez@tabasco.gob.mx

de antemano gracias

# re: SQLTableHistory utilidad para hacerle auditoria a tus tablas

Friday, February 22, 2008 5:49 PM by Lucas

Estaban, parece que copiaste el script para generar la tabla equivocada :P  Era "Audit", no "dtAudit".

# re: SQLTableHistory utilidad para hacerle auditoria a tus tablas

Saturday, February 23, 2008 12:49 AM by Esteban Zavala

Heyy si muchas gracias lucas, si lo que pasaba era que tenia una version vieja y se llamaba dtaudit, mil gracias

# re: Instalar Windows Vista SP1 desde Windows Update

Wednesday, March 05, 2008 7:51 PM by dany

yeahh ya ta bajando ;)

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Wednesday, March 12, 2008 4:55 PM by Carlos

El problema de este tipo de auditorias es que no te dice quien ha realizado tal acción. Si tuvieses SingleSOn en la aplicación, aun se podría auditar de esta manera, pero si no, imposible. Habria que modificar las aplicaciones que modifican la base de datos con algo montado sobre Entreprise Library o Log4NET.

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Friday, March 14, 2008 10:27 PM by Próspero

Carlos,

con este tipo de auditorías se puede obtener el usuario si con pequeños cambios a la aplicación.

Este sitio tiene información de como hacerlo:

www.auditdatabase.com

a mi me sirvió..

saludos,

Próspero

# re: Instalar Windows Vista SP1 desde Windows Update

Monday, March 17, 2008 10:05 AM by lenin

tuve un problema con el windows update q me queria actualizar el sonido, drive, y sofware y le di aceptar ahora no me actualiza y q tengo problemas con esto al actualizar me dice la maquina q puedo acer  la verdad ayudenme como recupero el software

# re: Instalar Windows Vista SP1 desde Windows Update

Thursday, March 20, 2008 11:22 PM by alvaro

por lo visto si detecta incompatibilidades con hardware no te actualiza ni de broma.(me he enterado despues de volverme loco intentando actualizar) en mi caso creo que es la tarjeta de sonido segun he visto por ahi...espero que lo solucionen si no me voy pa'linux y al vista que le den...saludos a todos...

# re: Instalar Windows Vista SP1 desde Windows Update

Friday, March 21, 2008 10:27 PM by dany

suerte alvaro en linux ubuntu o cualquiera de ellos ;) espero que no te pace la ley de "Tanto Ls para terminar en un Dir"

# re: ¿Estas contento con Windows Vista SP1? Pues elimina los archivos basura

Tuesday, March 25, 2008 10:21 AM by El Bruno

Cool tip

gracias

# re: ¿Estas contento con Windows Vista SP1? Pues elimina los archivos basura

Tuesday, March 25, 2008 7:34 PM by Esteban Zavala

Siempre Bruno ;)

# re: Por fin me llego mi {Heroes Community Launch Kit}

Wednesday, March 26, 2008 4:35 PM by Elias Mereb

Buen dia, podrias indicarme la empresa de oigine e la empresa? tengo un paquete en la adun pero proveniente COHESION queria saber si se trataba del HCL kit.

Saludos!

# re: Por fin me llego mi {Heroes Community Launch Kit}

Wednesday, March 26, 2008 8:05 PM by Esteban Zavala

Saludos Elias el paquete mio venia directamente de MICROSOFT

Kent, WA  98032 United States via DHL. Saludos

# re: Por fin me llego mi {Heroes Community Launch Kit}

Thursday, March 27, 2008 12:48 AM by Elias Mereb

Proviene de la mis dirección el mio, el unico detalle es que en la declaración dice valor US$ 500 y la descripción dice "FREE SOFTWARE" y me estan cobrando cerca de US$ 400 por tramite de aduanas...

Saludos!

# re: Por fin me llego mi {Heroes Community Launch Kit}

Thursday, March 27, 2008 8:48 PM by Edison Daniel García

Hola que tal,una pregunta el kit lo pediste en www.heroescommunitylaunch.com  o como hiciste el tramite para que te lo pudieran mandar, es que yo soy lider de comunidad en México, y si me interesa poder pedir un kit de esos, mi evento es en abril, y estamos a escasos 20 días.

Saludos

Muchas gracias ..

# re: Por fin me llego mi {Heroes Community Launch Kit}

Sunday, March 30, 2008 6:18 AM by Esteban Zavala

Saludos Edison, pues si te fijas en un email que enviaron, ellos estan enviando de acuerdo a la fecha programada de tus eventos,  yo tengo una presentacion el dia 4 de abril, y creo que por eso me llego rapido, asi que no te desesperes, creo que ya el tuyo debe de estar en camino... Saludos!!

# Agregar un simple Trigger para auditar tu base de datos SQL Server

PingBack desde  Agregar un simple Trigger para auditar tu base de datos SQL Server

# re: Por fin me llego mi {Heroes Community Launch Kit}

Wednesday, April 09, 2008 3:23 PM by Fran Díaz

A nuestro grupo ya les llegó otras dos cajitas :D.

Saludos!!

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Friday, April 18, 2008 1:15 AM by Felipe

Esto esta muy bueno muchas gracias!!,

en cuanto al nombre de usuario @UserName dara como resultado el "nombre de la maquina\nombre de la cuenta windows" en el caso de que se use autenticacion de windows para acceder a la base de datos, pero si se usa la autenticacion de sql server entonces la variable @UserName contedrá el nombre de usuario, por lo que se puede saber que usuario hizo que cambio. Muy bueno!!!

# re: Fileupload con progress bar en Asp.Net 2.0

Friday, April 25, 2008 5:24 PM by victor toledo

gracias d antemano... cuando hace el go.history(-1) no me pinta la imagen agregada en un objeto image asociado q he creado... debo hacer un postback o refresh y ya esta.... como lo puedo solucionar...

saludos

# re: Search Commands For Officer 2007

Thursday, May 01, 2008 11:18 AM by Juan Irigoyen

Creo que se han equivocado con el dishoso Ribbon, de hecho la adaptación al nuevo Office 2007, encuentra muchos detractores debido a este cambio, a mi juicio los menus tradicionales siguen siendo mas intuitivos, quizas porque llevemos muchos años manejandolos, aún asi creo que este es un cambio demasiado radical para la gente que lleva muchos años trabajando con sistemas de menus tradicionales, en fin veremos si lo mantienen en las próximas versiones.

# re: Search Commands For Officer 2007

Friday, May 02, 2008 11:04 PM by Esteban Zavala

Estoy totalmente de acuerdo contigo Juan Irogoyen, el cambio fue bastante radical que las personas todavia no han podido digerir, pero lo que hay que hacer es adaptarse y veras como te encontraras Ribbon bastante util.

Un abrazo compañero.

# re: {Evento: Desarollo de Aplicaciones Web con Prototype + Ajax + WCF}

Thursday, May 08, 2008 4:40 PM by Esteban Zavala

Saludos, si las voy a poner y estoy preparando una serie de post para usar Prototype en asp.net, espero tener tiempo y publicarlo, mantente al tanto

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Sunday, June 08, 2008 3:50 AM by Gabriel

Yo manejo un esquema similar a este solo que con plantillas para generar los triggers, el caso es que siempre me encuentro con la dificultad de conocer el nombre de la transaccion o el nombre del SP que realizó el insert y por lo tanto que desencadenó el trigger.

hace rato que busco una solucion a este tema. te agradeceria si puedes ayudarme con eso

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Tuesday, June 10, 2008 3:47 PM by Marcos Vera

Hola:

el aporte esta muy bueno.

solamente una observacion, cuando en el codigo se crea la variable @sql encontre en SQL 2000 que si esta concatenacion tiene un largo de mas de 4000 da error ( y el error que da es totalmente desorientate porque da error como si estuviera algo mas escrito en el codigo).

la solucion fue dividir el codigo en dos

@sql = "select campos... bla bla bla"

@sql = @sql + "aca sigue el codigo"

Espero que le ahorre a alguien el dolor de cabeza que me dio esto a mi ayer jajaja.

saludos

# re: Instalar Windows Vista SP1 desde Windows Update

Sunday, June 15, 2008 6:12 AM by fidel

tengo un error de audio ningun progama como windows media o itunes no reproduce se produce un error ayudame!!!!!!

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Tuesday, June 24, 2008 9:57 PM by Eduardo Ydrogo

Muy buen aporte, particularmente me fue de mucha utilidad.

Felicitaciones.

# re: Por fin me llego mi {Heroes Community Launch Kit}

Monday, June 30, 2008 3:29 PM by Cristhian M

Pueden explicarme como hago uso de las suscripciones technet. Gracias

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Friday, July 11, 2008 4:20 PM by idalto

Bueno, yo creo que una gran idea para resolver el tema de saber quier realizó la acción, de forma facil y sin tener que hacer grandes modificaciones, se encuentra en esta página debetta.com/.../37.aspx

# re: LINQ TO SQL Performance

Tuesday, July 29, 2008 11:54 PM by David Daniel Arroyo Zari "Ddaz"

creo que tu ejemplo no se ajusta 100% a la realidad... ya que lo que muestras... en el mundo real no se usaria de ese modo....

los ejemplos de este tipo no demuestran lo que en la realidad pasaria ...., aunque si da una perspectiva de la velocidad .... no contempla todos los factores.  te has puesto a pensar una app real.. que use linq cuantas veces aria llamadas a la db..  y eso como afectaria a la aplicacion....  no necesitan ser 10 000 llamadas en un bucle ( donde nadase hace entre llamada y llamda )  para hacer una aplicacion mas lenta.

personalmente a mi parecer LINQ es bonito y facil de usar... pero en cuestion de performance... creo que no es su "lado bonito"

esperemos que quiza en la V 3.0 de Linq  las cosas mejoren :)

Salu2

Ddaz

# re: LINQ TO SQL Performance

Wednesday, July 30, 2008 5:23 AM by Esteban Zavala

Saludos David, gracias por comentar, logicamente he hecho una prueba de una llamada con los distintas formas comunes que usamos los desarrolladores para conectarnos a la base de datos, es bien sabido que los Datareaders son bastante rapidos y todo eso, pero usar Datasets que es la forma mas comun de conexion no es la mas considerable, te puedo comentar que he trabajado con proyectos de mucha carga hechos en Linq To SQL y funcionan a la maravilla, pero bueno todo es cuestion de gustos. Saludos y se me cuida.

# re: LINQ TO SQL Performance

Wednesday, July 30, 2008 8:24 AM by David Daniel Arroyo Zari "Ddaz"

Hola :

bueno no se ... parece que entendiste que te recomendaba que uses Dataset... si fue asi... pues ... no era mi intencion esa... yo iba por otro punto....

por ejemplo  alli haces llamadas puras .. sin que nada lo interfiera .. si bien ayudan de estadistica... no es lo que pasa en una app real...

en una app real tu controlas cuantas llamadas y que llamadas se hacen...( logicamente en linq puedes tbm controlar eso... pero cuantos lo hacen???.... es mucho mas codigo ... ) en linq tu codificas de unba forma " facil" ... pero te has puesto a pensar cuantas llamadas hay hacia la db... bueno hay otros puntos que ya puso jersson en su post, el cual creo ya leiste. geeks.ms/.../linq-cuestiones-de-performance.aspx   .

como dijiste es cuestion de gustos.., linq de que funciona funciona ... pero como nada es gratis en la vida el costo que tiene linq quiza para unos sea demasiado caro.

pdta me pasaron este otro post .. checalo sobre optimizacion de linq : odetocode.com/.../12192.aspx

Salu2

Ddaz

# re: SQLTableHistory utilidad para hacerle auditoria a tus tablas

Wednesday, July 30, 2008 9:58 AM by Luis Molina

buenisimo..., por cierto tengo una tabla con 300 campos, es viable utilizar estos triggers para mi tabla o me va a colgar el sql express?

# re: LINQ TO SQL Performance

Wednesday, July 30, 2008 1:08 PM by Esteban Zavala

Gracias por el link, ciertamente el problema de linq son las llamadas que hacen, creo que no esta nada mal linq para estar primera vez entre la vida de los seres humanos, pero bueno, creo que en si, Linq si podria usarse con una DataAccess Layer que ya tenga uno implementada, depurada y que este funcionando, es decir estoy hablando de Linq To Object, y porque no, podriamos hacer nuestro propio provider.

Un saludo y se me cuida.

# re: LINQ TO SQL Performance

Wednesday, July 30, 2008 3:35 PM by David Daniel Arroyo Zari "Ddaz"

Hola de nuevo:

alli ya me comentas de otro modo de linq, no del Linq2Sql, algo que a mi parecer esta pasando ( y tbm al parecer de varios con los que platique) es que esto es casi casi como volver a los Dataset... si a esos con los cuales en el 2002 / 2003 empezo la promocion de .net y ya luego se tuvo que enseniar que eso no era lo " mejor"  .. y en si  que  ni se recomendaba su uso... pero como ya el internet esta sobresaturado de info de conexiones a datos con datasets... hay muchas personas que empiezan y comenzaran usando datasets por que pensaran que es lo mas correcto ( debiendo usar por ejemplo listas genericas.) .

Igual y en la version 3.0 de linq o la 4.0 de Entity framework esto este corregido... ( en la madrugada con jersson nos alucinabamos unas soluciones bien fumadas... jeje ) ,... pero se volvera a repetir el ciclo... muchas personas "por comodidad", desinformacion y/o flojera seguiran usando el metodo incorrecto.... y esto se vuelve un circulo vicioso... asi como los paradigmas ... que puso jersson en un post.   seria bueno que veas esto:  blogs.zdnet.com/microsoft

Salu2

Ddaz

# re: LINQ TO SQL Performance

Thursday, July 31, 2008 3:59 PM by Sergio

Hola

En realidad el tema del uso de DataSets ha sido bien "bapuleado" y con razón en cuando a lo que el desempeño de la aplicación se refiere, pero por otro lado creo que tienen y han tenido su  mérito en cuanto a la velocidad de desarrollo y simplicidad de uso,  He visto que las comparaciones que haces no tomaste en cuenta a los tableAdapters, los ignoraste a estos por que internamente usan dataset ?

Que opinas de los TableAdapters? son muy "simpaticos" en cuanto a su uso, super amigable su generación y entiendo que su desempeño en cuanto a la consultas de lectura es bastante bueno

salu2

Sergio

# re: Fileupload con progress bar en Asp.Net 2.0

Monday, August 04, 2008 4:12 PM by Frank

Hola amigo, interesante el FileUpload, pero me gustaria saber como hago para guardar el archivo en un servidor remoto.

# re: Fileupload con progress bar en Asp.Net 2.0

Tuesday, August 05, 2008 7:53 PM by jc

Hola disculpa como le hago para que el progres bar salga en la misma pagina en donde se ve al fileupload

# re: SQLTableHistory utilidad para hacerle auditoria a tus tablas

Wednesday, August 06, 2008 3:21 PM by ccollado

de donde bajo el codigo fuente , gracias ?

# re: SQLTableHistory utilidad para hacerle auditoria a tus tablas

Monday, August 25, 2008 2:30 PM by Esteban Zavala

Hola ccollado puedes bajarlo desde aqui

geeks.ms/.../download.aspx

# re: SQLTableHistory utilidad para hacerle auditoria a tus tablas

Tuesday, September 02, 2008 6:50 PM by Monica

Pudieramos tener acceso al codigo, fuente, es precisamente lo que estamos buscando hacer

Gracias

# re: LINQ TO SQL Performance

Thursday, September 18, 2008 11:25 PM by DEXTER de Vainas809.com

Hola esteban, no se si me recuerdas/conoces yo estudie en ENAO, ssoy amigo de Jonathan(el manso), nada pasaba aver tu blog porque veo que me sigues en twitter, pura coincidencia ehh!!

Nada, un saludo men!! ah si y esta muy interesante tu blog

# re: Console.Writeline("Hola Mundo Cruel"');

Thursday, September 18, 2008 11:59 PM by jsposito

lo que quiero saber es como ingrear desde una caja de texto de vb.net hacia un archivo plano sin borrar el contenido anterior

:-(

# re: LINQ TO SQL Performance

Friday, September 19, 2008 10:58 PM by Esteban

Dexter, si no veo una foto tuya o algo viejo, no te voy a conocer :) un saludo

# re: Fileupload con progress bar en Asp.Net 2.0

Tuesday, September 23, 2008 6:34 PM by eli

esta muy bueno el ejemplo ... buenaaaa

# re: Haz tus queries a HTML con LINQ To HTML

Thursday, September 25, 2008 4:55 PM by Master Chief DEVELOPER

hola soy ilio, el de los videos, me gusta tu idea, quieres que te firme un contrato para que hagas unos videos de C# y LINQ

# re: Haz tus queries a HTML con LINQ To HTML

Friday, September 26, 2008 4:27 PM by Esteban Zavala

Saludos espinete, bueno el costo de envio de 250 sms via orange es un peso dominicano (RD$1.00) y ahora mismo en nuestro pais el Euro esta la compra a 49 pesos por euro, asi que puedes sacar tus calculos, con relacion a la pregunta que si el HTML debe estar bien formado, en principio podriamos decir que si, pero una de las particularidades que tiene HtmlAgilityPack es que al convertirla como XML puede ser que cierre algunos tags que talvez no se guardaron.

Fabramafioso puedes probarlo con WXP ya que lo importante es .net Framework 3.5 que lo trae VS 2008.

Saludos

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Saturday, September 27, 2008 5:56 PM by Sql Servers

Hola, Muy buen aporte

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Wednesday, October 01, 2008 7:23 AM by Sql Server

Muy buen aporte

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, October 02, 2008 4:09 PM by Javier

Una pregunta, el objeto Thread en donde lo declaraste?

Gracias.

# re: Haz tus queries a HTML con LINQ To HTML

Wednesday, October 08, 2008 11:07 PM by espinete

Señor, cómo consigo la clase XDocument, yel Pack de HtmlAgilityPack

using HtmlAgilityPack;

Dónde lo puedo descargar ??

Gracias, saludos.

# re: Haz tus queries a HTML con LINQ To HTML

Wednesday, October 08, 2008 11:45 PM by Esteban Zavala

Saludos espinete puedes bajarlo desde aqui

www.codeplex.com/htmlagilitypack

y XDocument esta en System.Xml.Linq;

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, October 09, 2008 12:24 PM by Denis

Hola. Muy bueno el ejemplo. Sin embargo, lo estoy probando (la versión VB) y cuando lo ejecuto sólo me pasa por el btnUpload_click si no hay ninguna ruta almacenada en el fileUpload. Si hay una ruta válida, no sólo no pasa, si no que me redirige a una página de error (Internet Explorer no puede mostrar la página web). Si sabeis como evitar esto, o teneis el codigo funcionando, os agradecería que me ayudáseis.

# re: Fileupload con progress bar en Asp.Net 2.0

Tuesday, October 21, 2008 6:59 PM by demian

yo tambien necesitaria info de como hacer para ponerlo en un servidor remoto, y estaria barbaro q tenga una clase para achicar la imagen. gracias

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Monday, November 24, 2008 12:44 AM by John

Que tal,

Estoy probando el codigo, e hice varios cambios porque salian errores. El problema que tengo es que me sale un error al correrlo

Servidor: mensaje 311, nivel 16, estado 1, procedimiento ANULACION_ORDEN_COMPRA_ChangeTracking, línea 35

No se pueden usar columnas de tipo text, ntext o image en las tablas insertadas y eliminadas.

Tengo varias tablas con campos de tipo TEXT, como podria solucionar esto ??

Gracias de antemano.

John

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Friday, December 12, 2008 11:51 AM by jonathan

@Carlos: Se puede hacer algun apaño ;)

Solo necesitas modificar la aplicación para que le pase a un proceso almacenado el "usuario".  No el usuario de BBDD sino el usuario de la aplicación que se logeará contra una tabla de la BBDD.

Una vez le pasas ese usuario, lo guardas en el context_info de la sesion, y añades una columna a la tabla de esta aplicación que tenga el valor por defecto context_info.

El context_info pertenece a cada sesión, lo puedes leer de la vista de compatibilidad master.dbo.sysprocesses  y se borra cuando el usuario abandona la sesion.

# re: ¿Estas contento con Windows Vista SP1? Pues elimina los archivos basura

Saturday, December 13, 2008 3:30 AM by topsyx3m

ohh muchas gracias amigo instale el vista en una particion de solo 25 gb (recomendacion de una pagina por ahi) y me quede sin espacio. esto me va de lujo.

# re: Instalar Windows Vista SP1 desde Windows Update

Friday, January 02, 2009 5:10 PM by Jairo

Antes de intentar instalar el sp1, les recomiendo que hagan una copia de seguridad de todo el sisteema operativo; ¡por si algo falla!!

# re: Fileupload con progress bar en Asp.Net 2.0

Wednesday, January 21, 2009 7:00 PM by Ben

Si me funciona pero cuando quiero subir un Archivo pesado no me lo muestra

A que se debe

# re: Haz tus queries a HTML con LINQ To HTML

Monday, February 02, 2009 1:07 AM by ...

Oh, its great!

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Wednesday, February 11, 2009 9:22 PM by bart

este script no sirve

# re: Haz tus queries a HTML con LINQ To HTML

Tuesday, February 17, 2009 12:54 PM by Nicolas Rodriguez RS

Mi hermano te la comiste con el articulo jejeje.

# re: Fileupload con progress bar en Asp.Net 2.0

Monday, March 02, 2009 5:12 PM by Leonel Fu

No me aparece por nada del mundo la progress bar(el <div>)

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, March 05, 2009 8:21 PM by Jose Luis

Como mandas a llamar tu user control dentro del boton de cargar o como seria te lo agradeceria mucho si me pudieras ayudar

# re: Instalar Windows Vista SP1 desde Windows Update

Tuesday, March 31, 2009 2:13 PM by Gustavo

Cuando intenta actualizar me da error 565, alguien puede ayudarme? gracias

# re: Instalar Windows Vista SP1 desde Windows Update

Tuesday, March 31, 2009 2:13 PM by Gustavo

Cuando intenta actualizar me da error 565, alguien puede ayudarme? gracias

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Saturday, April 18, 2009 4:30 PM by yodelmis

saludos

este trigger es para auditar tablas y quisiera felicitar al creador y a todos los que dan sus opiniones. mi enterrogante es como auditar la creacion de procedimientos almacenados.

Tengo una aplicacion en la cual cada usuario tiene un procedimiento almacenado que engloba todos sus derechos sobre la aplicacion. mi intencion es lograr llenar una tabla con los procedimientos almacenados disponibles para asignar a los usuarios, de esta manera los administradores del sistema (que no son informaticos), ya tendrian en una tabla cuales procedimientos se pueden asignar.

disculpen tanto blablabla.

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Wednesday, April 29, 2009 12:43 AM by Ismael

Msg 156, Level 15, State 1, Line 6

Incorrect syntax near the keyword 'SET'.

Msg 137, Level 15, State 1, Line 11

Must declare the variable '@TABLE_NAME'.

Msg 137, Level 15, State 2, Line 17

Must declare the variable '@TABLE_NAMEIS'.

Msg 137, Level 15, State 2, Line 19

Must declare the variable '@TABLE_NAME'.

Msg 137, Level 15, State 2, Line 22

Must declare the variable '@TABLE_NAME'.

Msg 137, Level 15, State 1, Line 117

Must declare the variable '@TABLE_NAME'.

# re: Fileupload con progress bar en Asp.Net 2.0

Wednesday, May 13, 2009 4:48 PM by Juan Jiménez

Hola, El problema que yo tengo no es la presentación de una barra de progreso, mi problemas es que quiero cargar mas de un fichero, he creado una tabla y sobre esa tabla he colocado n FileUpload, cuando se hace un Posback se pieden los valores que hay, y no se como se guardan en la viewState.

Si lo sabes te agracedería que me lo dijeses.

jjimenezcf@gmail.com

# re: Fileupload con progress bar en Asp.Net 2.0

Wednesday, May 13, 2009 4:48 PM by Juan Jiménez

Hola, El problema que yo tengo no es la presentación de una barra de progreso, mi problemas es que quiero cargar mas de un fichero, he creado una tabla y sobre esa tabla he colocado n FileUpload, cuando se hace un Posback se pieden los valores que hay, y no se como se guardan en la viewState.

Si lo sabes te agracedería que me lo dijeses.

jjimenezcf@gmail.com

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Saturday, June 06, 2009 4:34 AM by Alberto

Encontre un problema que cuando la clave principal es compuesta, por ejemplo id1+id2+id3, sale todo concatenado el nombre y luego los valos de dichos campos, estoy en busca de una solucion para separar los nombres de campos y valores por ";"

# re: What's new in Internet Explorer 8 Beta 1

Monday, July 06, 2009 2:54 AM by fede

yo tengo un beta muy parecido me gustaria saver sobre ellos porque no tengo información. si me queres contar algo sobre ellos mandame un msj. a mi e-mail. es fede_chevrolet_10@hotmail.com.

gracias y muy lindo el beta.

chau bessos...

# re: What's new in Internet Explorer 8 Beta 1

Saturday, September 12, 2009 12:53 AM by barbara montero

esta super cool el pecesito yo tengo 6 un blanco,dorado,azul,rosa,negro con rojo y otro amarillo con azul quisiera que me digan como se cruzan por que uno de mis peces es hembra y cada vez que los junto se pelean

# re: What's new in Internet Explorer 8 Beta 1

Saturday, September 12, 2009 1:00 AM by TALYN TREVIÑO

Ay¡ pues esta super lindo el beta yo soy fanatica de estas pequeñas criaturas de DIOS que dios los bendiga atodos.Vayan con dios y la virgen

MIL GRACIAS

besitos

p.d.cuidenme a mis peces ok

NO LOS MALTRATEN CAPTAN.

bye

# SQLTableHistory utilidad para hacerle auditoria a tus tablas

Sunday, September 13, 2009 7:44 PM by oscar nixon

no se como hacerlo funcionar para todas las tablas de mibase de datos...

me podria acolaborar con esto gracias

oscar

# re: SQLTableHistory utilidad para hacerle auditoria a tus tablas

Sunday, September 13, 2009 7:44 PM by oscar nixon

no lo he podido a funcionar en todas las tablas como hago por favor

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Monday, September 14, 2009 11:35 PM by Juan Carlos

alguien puede subir una actualizacion del script que discrimine los campos "text, ntext, image"

gracias

# AYUDAR ERROR

Saturday, September 19, 2009 2:53 AM by HUGO IVAN

Revizando el script me econtre con los siguientes errores

1. UserNamevarchar(128) es decir el tipo de dato esta pegado al nombre debe quedar asio UserName varchar(128).

2. WHILE @TABLE_NAMEIS NOT NULL, la palabra IS esta pegada a la variable @TABLE_NAME debe quedar asip WHILE @TABLE_NAME IS NOT NULL

Segui revizando y me encontre con este error lo cual no tengo idea que puede ser. Alguien que me colabore gracias.

19:45:56  [USE - 0 row(s), 0.000 secs]  Command processed. No rows were affected

Code: 5701 SQL State: 01000 --- Cambiado el contexto de base de datos a 'bombas'.

19:45:56  [IF - 0 row(s), 0.000 secs]  Command processed. No rows were affected

19:45:56  [DECLARE - 0 row(s), 0.000 secs]  [Error Code: 170, SQL State: 37000]  Línea 14: sintaxis incorrecta cerca de '='.

... 3 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.000/0.000 sec  [0 successful, 2 warnings, 1 errors]

# Facilitar Trigger sin errores gracias

Saturday, September 19, 2009 4:51 AM by HUGO IVAN

Alguien que me ayude con este script pero sin errores

Gracias...

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Friday, September 25, 2009 12:16 AM by angel

Server: Msg 173, Level 15, State 1, Line 28

The definition for column 'UserNamevarchar' must include a data type.

Server: Msg 156, Level 15, State 1, Line 6

Incorrect syntax near the keyword 'SET'.

Server: Msg 137, Level 15, State 1, Line 12

Must declare the variable '@TABLE_NAME'.

Server: Msg 137, Level 15, State 1, Line 24

Must declare the variable '@TABLE_NAMEIS'.

Server: Msg 137, Level 15, State 1, Line 28

Must declare the variable '@TABLE_NAME'.

Server: Msg 137, Level 15, State 1, Line 34

Must declare the variable '@TABLE_NAME'.

Server: Msg 137, Level 15, State 1, Line 232

Must declare the variable '@TABLE_NAME'.

# re: SQLTableHistory utilidad para hacerle auditoria a tus tablas

Friday, September 25, 2009 4:10 PM by angel

Perdon, soy nuevo en esto, pero los script los corro desde el Query Analyzer?

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Monday, October 12, 2009 8:16 PM by Javier

Encontré un problema después del campo 25 o 26 hay un desplazamiento y no he podido encontrar por que se da.

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Wednesday, November 04, 2009 4:30 PM by thctase

Corrijo algunos errores tipográficos del ejemplo:

USE ¡¡¡¡MYDATABASE!!!! --Ponerle el nombre de la base de datos que va hacer auditada

GO

IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME= 'Audit')

CREATE TABLE Audit

(

AuditID [int]IDENTITY(1,1) NOT NULL,

Type char(1),

TableName varchar(128),

PrimaryKeyField varchar(1000),

PrimaryKeyValue varchar(1000),

FieldName varchar(128),

OldValue varchar(1000),

NewValue varchar(1000),

UpdateDate datetime DEFAULT (GetDate()),

UserName varchar(128)

)

GO

DECLARE @sql varchar(8000), @TABLE_NAME sysname

SET NOCOUNT ON

SELECT @TABLE_NAME= MIN(TABLE_NAME)

FROM INFORMATION_SCHEMA.Tables

WHERE

TABLE_TYPE= 'BASE TABLE'

AND TABLE_NAME!= 'sysdiagrams'

AND TABLE_NAME!= 'Audit'

WHILE @TABLE_NAME IS NOT NULL

BEGIN

EXEC('IF OBJECT_ID (''' + @TABLE_NAME+ '_ChangeTracking'', ''TR'') IS NOT NULL DROP TRIGGER ' + @TABLE_NAME+ '_ChangeTracking')

SELECT @sql =

'

create trigger ' + @TABLE_NAME+ '_ChangeTracking on ' + @TABLE_NAME+ ' for insert, update, delete

as

declare @bit int ,

@field int ,

@maxfield int ,

@char int ,

@fieldname varchar(128) ,

@TableName varchar(128) ,

@PKCols varchar(1000) ,

@sql varchar(2000),

@UpdateDate varchar(21) ,

@UserName varchar(128) ,

@Type char(1) ,

@PKFieldSelect varchar(1000),

@PKValueSelect varchar(1000)

select @TableName = ''' + @TABLE_NAME+ '''

-- date and user

select @UserName = system_user ,

@UpdateDate = convert(varchar(8), getdate(), 112) + '' '' + convert(varchar(12), getdate(), 114)

-- Action

if exists (select * from inserted)

if exists (select * from deleted)

select @Type = ''U''

else

select @Type = ''I''

else

select @Type = ''D''

-- get list of columns

select * into #ins from inserted

select * into #del from deleted

-- Get primary key columns for full outer join

select @PKCols = coalesce(@PKCols + '' and'', '' on'') + '' i.'' + c.COLUMN_NAME + '' = d.'' + c.COLUMN_NAME

from INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,

INFORMATION_SCHEMA.KEY_COLUMN_USAGE c

where pk.TABLE_NAME = @TableName

and CONSTRAINT_TYPE = ''PRIMARY KEY''

and c.TABLE_NAME = pk.TABLE_NAME

and c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME

-- Get primary key fields select for insert

select @PKFieldSelect = coalesce(@PKFieldSelect+''+'','''') + '''''''' + COLUMN_NAME + ''''''''

from INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,

INFORMATION_SCHEMA.KEY_COLUMN_USAGE c

where pk.TABLE_NAME = @TableName

and CONSTRAINT_TYPE = ''PRIMARY KEY''

and c.TABLE_NAME = pk.TABLE_NAME

and c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME

select @PKValueSelect = coalesce(@PKValueSelect+''+'','''') + ''convert(varchar(100), coalesce(i.'' + COLUMN_NAME + '',d.'' + COLUMN_NAME + ''))''

from INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,  

INFORMATION_SCHEMA.KEY_COLUMN_USAGE c  

where  pk.TABLE_NAME = @TableName  

and CONSTRAINT_TYPE = ''PRIMARY KEY''  

and c.TABLE_NAME = pk.TABLE_NAME  

and c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME

if @PKCols is null

begin

raiserror(''no PK on table %s'', 16, -1, @TableName)

return

end

select @field = 0, @maxfield = max(ORDINAL_POSITION) from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @TableName

while @field < @maxfield

begin

select @field = min(ORDINAL_POSITION) from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @TableName and ORDINAL_POSITION > @field

select @bit = (@field - 1 )% 8 + 1

select @bit = power(2,@bit - 1)

select @char = ((@field - 1) / 8) + 1

if substring(COLUMNS_UPDATED(),@char, 1) & @bit > 0 or @Type in (''I'',''D'')

begin

select @fieldname = COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @TableName and ORDINAL_POSITION = @field

select @sql = ''insert Audit (Type, TableName, PrimaryKeyField, PrimaryKeyValue, FieldName, OldValue, NewValue, UpdateDate, UserName)''

select @sql = @sql + '' select '''''' + @Type + ''''''''

select @sql = @sql + '','''''' + @TableName + ''''''''

select @sql = @sql + '','' + @PKFieldSelect

select @sql = @sql + '','' + @PKValueSelect

select @sql = @sql + '','''''' + @fieldname + ''''''''

select @sql = @sql + '',convert(varchar(1000),d.'' + @fieldname + '')''

select @sql = @sql + '',convert(varchar(1000),i.'' + @fieldname + '')''

select @sql = @sql + '','''''' + @UpdateDate + ''''''''

select @sql = @sql + '','''''' + @UserName + ''''''''

select @sql = @sql + '' from #ins i full outer join #del d''

select @sql = @sql + @PKCols

select @sql = @sql + '' where i.'' + @fieldname + '' <> d.'' + @fieldname

select @sql = @sql + '' or (i.'' + @fieldname + '' is null and  d.'' + @fieldname + '' is not null)''

select @sql = @sql + '' or (i.'' + @fieldname + '' is not null and  d.'' + @fieldname + '' is null)''

exec (@sql)

end

end

'

SELECT @sql

EXEC(@sql)

SELECT @TABLE_NAME= MIN(TABLE_NAME) FROM INFORMATION_SCHEMA.Tables

WHERE TABLE_NAME> @TABLE_NAME

AND TABLE_TYPE= 'BASE TABLE'

AND TABLE_NAME!= 'sysdiagrams'

AND TABLE_NAME!= 'Audit'

END

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Wednesday, January 13, 2010 5:10 PM by Lucas

Alguien tuvo problemas de este tipo

Msg 208, Level 16, State 1, Line 6

El nombre de objeto 'INFORMATION_SCHEMA.Tables' no es válido.

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Wednesday, January 13, 2010 5:11 PM by Lucas

Ejecuto todo el script y ok, pero en la ultima parte me da este error:

Msg 208, Level 16, State 1, Line 6

El nombre de objeto 'INFORMATION_SCHEMA.Tables' no es válido.

# pez beta

Friday, January 22, 2010 7:56 AM by olaya

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡me  encaaaaaaaaaaaaantan los peces BETA¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡  

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Tuesday, February 09, 2010 12:06 AM by iloso

no tienes los privilegios o tu version de sqlserver es distinta, 'INFORMATION_SCHEMA.Tables' yo lo he visto en sqlserver

# re: LINQ TO SQL Performance

Thursday, February 18, 2010 3:39 AM by patricio Paccha

Amigos estoy seguro que LINQ es bueno porfin se deja de lado lo desgastante de memoria al usar los dataset fue el error mas grande de microsoft pues esos tipos de datos solo sirben en el mundo de microsotf es necesario mantener los lenguajes como son si es POO debes manejar objetos y LINQ te da esa opcion y la coomparacion no es tan justa pues si se analiza el tiempo de LINQ se ve algo mas lento pero es porq al poner eso datos en memoria los cargo como objetos ya tienes soporte para acceso a esos datos con su definicion adecuado osea si es ID int  o si los NOMbres son string ya esta con ese formato en coambio el Datareader es un lector "bobo" no sabe lo que lee ni lo adsorbe de la base asi que pues me quedo con LINQ.!

# re: Instalar Windows Vista SP1 desde Windows Update

Sunday, April 04, 2010 7:19 PM by Freddy Vargas

Deseo instalar el SP1 en Home Premium, pero me vota el mensaje de error 0x800F0823, segun foros que he visto dice que se debe a no tener instaladas algunas actualizaciones como la KB937287, instalo esta actualizacion desde windows update y dice instalalarla pero luego siempre pide nuevamente la instalacion como si nunca la instalara,  la verdad me gustaria que me ayudaran a instalar este SP1,  porque sin este es imposible instalar el SP2.  GRACIAS.

# re: SQLTableHistory utilidad para hacerle auditoria a tus tablas

Friday, April 30, 2010 6:14 PM by Amilcarpg

Muchisimas gracias, justo estaba trabajando en un proyecto similar, asi que no reinventare la polvora..

:)

# re: What's new in Internet Explorer 8 Beta 1

Wednesday, May 05, 2010 3:39 AM by erwin

megustan los beta

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Monday, May 24, 2010 3:48 PM by Edwin Reyes

Como hacer para correr el script en tabla que tiene campos text, ntext, o image..

me sale el sgte error:

Server: Msg 311, Level 16, State 1, Procedure dtproperties_ChangeTracking, Line 59

Cannot use text, ntext, or image columns in the 'inserted' and 'deleted' tables.

Server: Msg 311, Level 16, State 1, Procedure dtproperties_ChangeTracking, Line 61

Cannot use text, ntext, or image columns in the 'inserted' and 'deleted' tables.

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, June 03, 2010 5:29 PM by juan alvarez

muy buena aportacion amigo, gracias por compartir.

# re: Fileupload con progress bar en Asp.Net 2.0

Thursday, June 03, 2010 6:04 PM by jaun alverez

amigo ya probandolo esta muy bien en explorer pero en firefox parece que no funciona no se ve el progreso de carga

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Wednesday, June 16, 2010 6:22 PM by David

excelente!!! ESTE CODIGO ME CAYO ESPECTACULAR... no saben todo el trabajo que me ahorro..  y lo mejor es que es totalmente dinamico, no importa que luego agregue una nueva columna, ya automaticamente tambien la audita. genial.. genial.. genial.. !!!!

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Tuesday, July 13, 2010 5:08 PM by rul

me envia un mensaje de error y es el siguiente

The query has exceeded the maximum number of result sets that can be displayed in the results grid. Only the first 100 result sets are displayed in the grid.

gracias espero puedan ayudarme

# re: Fileupload con progress bar en Asp.Net 2.0

Monday, July 19, 2010 1:03 AM by Desperado

Hola, por más que intento probarlo no compila, da errores no podrían subir una proyecto ya compilado??? gracias

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Tuesday, July 20, 2010 4:36 AM by ni14

gente muy bueno y anda muy bien. pero queria saber si se puede modificar para que tome un usaurio logueado en una aplicacion de vb.net. ees para un trabajo de lafacu, y necesito auditar el usuario logueado y no el de la maquina.

Gracias; Muy buen trabajo con este SCRIPT

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Monday, August 02, 2010 7:56 PM by cesar

gracias me ahorro mucho trabajo el cres es excelente tu aporte me gustaria saber si tengo dos base de datos uno llamado SAS y el otro Auditoria y quiero enviar a AUDITORIA LOS CAMBIOS EN LAS tablas de produccion SAS que vario en el script gracias por tu tiempo

# re: LINQ TO SQL Performance

Saturday, August 07, 2010 4:19 AM by German

Seria bueno hacer un test pero con 300 millones de registros, creo que 10,000 no es mucho, actualmente donde trabajo contamos con esta cantidad de registros y los test ques estoy hacindo son lentos

saludos

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Thursday, August 12, 2010 6:52 PM by Fernando

Mucha, gracias, excelente

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Tuesday, September 07, 2010 7:05 PM by Piratova

Por lo que he leido es muy bueno. Soy relativamente nueva en SQL  que debo hacer para ponerlo en mi bd.

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Thursday, September 30, 2010 12:09 AM by Alexander Cuellar Jimenez

mejorando el script->

- Corregidos los errores del script

- agrupando algunas consultas para extraer datos:

USE MYDATABASE--Ponerle el nombre de la base de datos que va hacer auditada

GO

IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME= 'Audit')

CREATE TABLE Audit

(

AuditID [int]IDENTITY(1,1) NOT NULL,

Type char(1),

TableName varchar(128),

PrimaryKeyField varchar(1000),

PrimaryKeyValue varchar(1000),

FieldName varchar(128),

OldValue varchar(1000),

NewValue varchar(1000),

UpdateDate datetime DEFAULT (GetDate()),

UserName varchar(128)

)

GO

DECLARE @sql varchar(8000), @TABLE_NAME sysname

SET NOCOUNT ON

SELECT @TABLE_NAME= MIN(TABLE_NAME)

FROM INFORMATION_SCHEMA.Tables

WHERE

TABLE_TYPE= 'BASE TABLE'

AND TABLE_NAME!= 'sysdiagrams'

AND TABLE_NAME!= 'Audit'

WHILE @TABLE_NAME IS NOT NULL

BEGIN

EXEC('IF OBJECT_ID (''' + @TABLE_NAME+ '_ChangeTracking'', ''TR'') IS NOT NULL DROP TRIGGER ' + @TABLE_NAME+ '_ChangeTracking')

SELECT @sql =

'

create trigger ' + @TABLE_NAME+ '_ChangeTracking on ' + @TABLE_NAME+ ' for insert, update, delete

as

declare @bit int ,

@field int ,

@maxfield int ,

@char int ,

@fieldname varchar(128) ,

@TableName varchar(128) ,

@PKCols varchar(1000) ,

@sql varchar(2000),

@UpdateDate varchar(21) ,

@UserName varchar(128) ,

@Type char(1) ,

@PKFieldSelect varchar(1000),

@PKValueSelect varchar(1000)

select @TableName = ''' + @TABLE_NAME+ '''

-- date and user

select @UserName = system_user ,

@UpdateDate = convert(varchar(8), getdate(), 112) + '' '' + convert(varchar(12), getdate(), 114)

-- Action

if exists (select * from inserted)

if exists (select * from deleted)

select @Type = ''U''

else

select @Type = ''I''

else

select @Type = ''D''

-- get list of columns

select * into #ins from inserted

select * into #del from deleted

-- Get primary key columns for full outer join

select

@PKCols = coalesce(@PKCols + '' and'', '' on'') + '' i.'' + c.COLUMN_NAME + '' = d.'' + c.COLUMN_NAME,

-- Get primary key fields select for insert

@PKFieldSelect = coalesce(@PKFieldSelect+''+'','''') + '''''''' + COLUMN_NAME + '''''''',

@PKValueSelect = coalesce(@PKValueSelect+''+'','''') + ''convert(varchar(100), coalesce(i.'' + COLUMN_NAME + '',d.'' + COLUMN_NAME + ''))''

from INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,

INFORMATION_SCHEMA.KEY_COLUMN_USAGE c

where pk.TABLE_NAME = @TableName

and CONSTRAINT_TYPE = ''PRIMARY KEY''

and c.TABLE_NAME = pk.TABLE_NAME

and c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME

if @PKCols is null

begin

raiserror(''no PK on table %s'', 16, -1, @TableName)

return

end

select @field = 0, @maxfield = max(ORDINAL_POSITION) from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @TableName

group by ORDINAL_POSITION,COLUMN_NAME

order by ORDINAL_POSITION desc

while @field < @maxfield

begin

select @bit = (@field - 1 )% 8 + 1

select @bit = power(2,@bit - 1)

select @char = ((@field - 1) / 8) + 1

if substring(COLUMNS_UPDATED(),@char, 1) & @bit > 0 or @Type in (''I'',''D'')

begin

select @sql = ''insert Audit (Type, TableName, PrimaryKeyField, PrimaryKeyValue, FieldName, OldValue, NewValue, UpdateDate, UserName)''

select @sql = @sql + '' select '''''' + @Type + ''''''''

select @sql = @sql + '','''''' + @TableName + ''''''''

select @sql = @sql + '','' + @PKFieldSelect

select @sql = @sql + '','' + @PKValueSelect

select @sql = @sql + '','''''' + @fieldname + ''''''''

select @sql = @sql + '',convert(varchar(1000),d.'' + @fieldname + '')''

select @sql = @sql + '',convert(varchar(1000),i.'' + @fieldname + '')''

select @sql = @sql + '','''''' + @UpdateDate + ''''''''

select @sql = @sql + '','''''' + @UserName + ''''''''

select @sql = @sql + '' from #ins i full outer join #del d''

select @sql = @sql + @PKCols

select @sql = @sql + '' where i.'' + @fieldname + '' <> d.'' + @fieldname

select @sql = @sql + '' or (i.'' + @fieldname + '' is null and  d.'' + @fieldname + '' is not null)''

select @sql = @sql + '' or (i.'' + @fieldname + '' is not null and  d.'' + @fieldname + '' is null)''

exec (@sql)

end

end

'

SELECT @sql

EXEC(@sql)

SELECT @TABLE_NAME= MIN(TABLE_NAME) FROM INFORMATION_SCHEMA.Tables

WHERE TABLE_NAME> @TABLE_NAME

AND TABLE_TYPE= 'BASE TABLE'

AND TABLE_NAME!= 'sysdiagrams'

AND TABLE_NAME!= 'Audit'

END

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Thursday, September 30, 2010 12:25 AM by Alexander Cuellar Jimenez

Este otro es para aquellos que necesitan que el registro de las auditorias este en una sola tupla. Es decir que todos los campos afectados por alguna de las operaciones (insert, update, delete) estarán concatenados y separados por '|'

USE MYDATABASE--Ponerle el nombre de la base de datos que va hacer auditada

GO

IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME= 'Audit')

CREATE TABLE Audit

(

AuditID [int]IDENTITY(1,1) NOT NULL,

Type char(1),

TableName varchar(128),

PrimaryKeyField varchar(1000),

PrimaryKeyValue varchar(1000),

FieldName varchar(1000),

OldValue varchar(2000),

NewValue varchar(2000),

UpdateDate datetime DEFAULT (GetDate()),

UserName varchar(128)

)

GO

DECLARE @sql varchar(8000), @TABLE_NAME sysname

SET NOCOUNT ON

SELECT @TABLE_NAME= MIN(TABLE_NAME)

FROM INFORMATION_SCHEMA.Tables

WHERE

TABLE_TYPE= 'BASE TABLE'

AND TABLE_NAME!= 'sysdiagrams'

AND TABLE_NAME!= 'Audit'

WHILE @TABLE_NAME IS NOT NULL

BEGIN

EXEC('IF OBJECT_ID (''TR_AUDIT_' + @TABLE_NAME + ''', ''TR'') IS NOT NULL DROP TRIGGER TR_AUDIT_' + @TABLE_NAME+ '')

SELECT @sql =

'

create trigger TR_AUDIT_' + @TABLE_NAME + ' on ' + @TABLE_NAME+ ' for insert, update, delete

as

declare @bit int ,

@field int ,

@maxfield int ,

@char int ,

@fieldname varchar(64) ,

@TableName varchar(128) ,

@PKCols varchar(1000) ,

@sql varchar(8000),

@UpdateDate varchar(21) ,

@UserName varchar(128) ,

@Type char(1) ,

@PKFieldSelect varchar(1000),

@PKValueSelect varchar(1000),

@fieldsNames varchar(1000) ,

@ValuesOld varchar(2000),

@ValuesNew varchar(2000)

select @TableName = ''' + @TABLE_NAME+ '''

-- date and user

select @UserName = system_user ,

@UpdateDate = convert(varchar(8), getdate(), 112) + '' '' + convert(varchar(12), getdate(), 114)

-- Action

if exists (select * from inserted)

if exists (select * from deleted)

select @Type = ''U''

else

select @Type = ''I''

else

select @Type = ''D''

-- get list of columns

select * into #ins from inserted

select * into #del from deleted

-- Get primary key columns for full outer join

select

@PKCols = coalesce(@PKCols + '' and'', '' on'') + '' i.'' + c.COLUMN_NAME + '' = d.'' + c.COLUMN_NAME,

@PKFieldSelect = coalesce(@PKFieldSelect+''+''''|''''+'','''') + '''''''' + COLUMN_NAME + '''''''',

@PKValueSelect = coalesce(@PKValueSelect+''+''''|''''+'','''') + ''convert(varchar(1000), coalesce(i.'' + COLUMN_NAME + '',d.'' + COLUMN_NAME + ''))''

from INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,

INFORMATION_SCHEMA.KEY_COLUMN_USAGE c

where pk.TABLE_NAME = @TableName

and CONSTRAINT_TYPE = ''PRIMARY KEY''

and c.TABLE_NAME = pk.TABLE_NAME

and c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME

if @PKCols is null

begin

raiserror(''no PK on table %s'', 16, -1, @TableName)

return

end

select @field = 0, @maxfield = max(ORDINAL_POSITION) from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = @TableName

while @field < @maxfield

begin

select @field = min(ORDINAL_POSITION),@fieldname = COLUMN_NAME  

from INFORMATION_SCHEMA.COLUMNS

where TABLE_NAME = @TableName and ORDINAL_POSITION > @field

group by ORDINAL_POSITION,COLUMN_NAME

order by ORDINAL_POSITION desc

select @bit = (@field - 1 )% 8 + 1

select @bit = power(2,@bit - 1)

select @char = ((@field - 1) / 8) + 1

if substring(COLUMNS_UPDATED(),@char, 1) & @bit > 0 or @Type in (''I'',''D'')

begin

select

@fieldsNames = coalesce(@fieldsNames +''+''''|''''+'','''', '''') + '''''''' + COLUMN_NAME + '''''''',

@ValuesOld = coalesce(@ValuesOld +''+''''|''''+'','''', '''') + ''convert(varchar(2000), coalesce(d.'' + c.COLUMN_NAME + '',''''''''))'',

@ValuesNew = coalesce(@ValuesNew +''+''''|''''+'','''', '''') + ''convert(varchar(2000), coalesce(i.'' + c.COLUMN_NAME + '',''''''''))''

from

INFORMATION_SCHEMA.COLUMNS c

where c.TABLE_NAME = @TableName

and c.COLUMN_NAME=@fieldname

end

end

select @sql = ''insert Audit (Type, TableName, PrimaryKeyField, PrimaryKeyValue, FieldName, OldValue, NewValue, UpdateDate, UserName)''

select @sql = @sql + '' select '''''' + @Type + ''''''''

select @sql = @sql + '','''''' + @TableName + ''''''''

select @sql = @sql + '','' + @PKFieldSelect

select @sql = @sql + '','' + @PKValueSelect

select @sql = @sql + '','' + @fieldsNames

select @sql = @sql + '','' + @ValuesOld

select @sql = @sql + '','' + @ValuesNew

select @sql = @sql + '','''''' + @UpdateDate + ''''''''

select @sql = @sql + '','''''' + @UserName + ''''''''

select @sql = @sql + '' from #ins i full outer join #del d ''

select @sql = @sql + @PKCols

exec (@sql)

'

SELECT @sql

EXEC(@sql)

SELECT @TABLE_NAME= MIN(TABLE_NAME) FROM INFORMATION_SCHEMA.Tables

WHERE TABLE_NAME> @TABLE_NAME

AND TABLE_TYPE= 'BASE TABLE'

AND TABLE_NAME!= 'sysdiagrams'

AND TABLE_NAME!= 'Audit'

END

# re: Fileupload con progress bar en Asp.Net 2.0

Friday, January 07, 2011 12:36 AM by David

Muy bien... pero una duda... no estástomando en cuenta el tamaño del archivo o lo que falta del mismo vdd? o sea no estás haciendo una comparación del tamaño del archivo, los bytes que se han cargado y los bytes que faltan... esto sólo estaría "simulando" el progreso mediante los setInterval de JS... :(

# re: Fileupload con progress bar en Asp.Net 2.0

Wednesday, March 02, 2011 5:06 PM by fdCarlos

Muchas graias por el tutorial

una pregunta de principiante

podrias dar el orden de los archivos

o si podrias suvier todo el ejemplo en un archivo comprimido

lo que hice fue

en este archivo puse todos los imports y codijo vb

Uploader.ascx.vb

pero en el siguiente no se  que codigo se pone

Default.aspx.VB

de antemano muchas gracias

# re: Fileupload con progress bar en Asp.Net 2.0

Wednesday, May 04, 2011 7:45 PM by Ivan Von Doom

Bueeeeeeeeeeenisimo el articulo!! Felicidades!! me ayudo en serio!! =d

# re: Fileupload con progress bar en Asp.Net 2.0

Wednesday, May 04, 2011 7:46 PM by Ivan Von Doom

Bueeeeeeeeeeenisimo el articulo!! Felicidades!! me ayudo en serio!! =d

# Gracias

Tuesday, May 17, 2011 3:38 PM by Christian

como capturo el ip del cliente

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Friday, July 29, 2011 8:54 PM by Rafael

Excelente aporte,  yo modifique un poco el trigger para que funcione para n capas, pero se basa en que cualquier tabla del sistema tenga un campo aud_usuario, para que este decienda desde la capa web hasta el trigger de la base de datos, En cuanto al ultimo post de Alexander Cuellar Jimenez en que dice para que salga concatenado me parece chevere, pero hay un detalle que modificar si actualizas tres campos se hace tres inserts en la base la tabla de audit, y bastaría con uno pues los campos y valores ya estan concatenados

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Thursday, August 04, 2011 4:34 PM by corplex

muy bueno felicitaciones ......

# re: Por fin me llego mi {Heroes Community Launch Kit}

Wednesday, August 24, 2011 4:42 PM by production of lamps for the home

Quería darle las gracias por leer esta genial! Yo positivamente divertirse con cada poco de que le he agregado un marcador a echar un vistazo a lo nuevo que presentar

# re: Agregar un simple Trigger para auditar tu base de datos SQL Server

Tuesday, April 17, 2012 6:56 AM by cadesa

Hola buenas noches,

Yo quisiera saber como puedo cambiar

@UserName = system_user

por el usuario que inicio sesion que no esta logueado a nivel de base de datos, sino que esta almacenado en una tabla usuario.

Saludos.