viernes, 18 de marzo de 2011
"La Guerra de los navegadores"
jueves, 18 de noviembre de 2010
Compartir Carpeta Programáticamente C#
Primero que nada empezamos creando una nueva aplicación de consola.
Después en Referencias agregamos una a "System.Management".
No olviden agregar la clausula Using al inicio de su programa (también agreguen una a System.IO, para verificar que el directorio exista):
using System.Management; using System.IO;
Agregada la referencia y todo en orden, ahora si vamos a crear nuestra función para compartir la carpeta:
private static void CompartirFolder(string rutaFolder, string nombreCompartido, string descripcion)
{
try
{
if (Directory.Exists(rutaFolder))
{
ManagementClass managementClass = new ManagementClass("Win32_Share");
ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");
ManagementBaseObject outParams;
inParams["Description"] = descripcion;
inParams["Name"] = nombreCompartido;
inParams["Path"] = rutaFolder;
inParams["Type"] = 0x0;
inParams["MaximumAllowed"] = null;
inParams["Password"] = null;
inParams["Access"] = null;
outParams = managementClass.InvokeMethod("Create", inParams, null);
if ((uint)(outParams.Properties["ReturnValue"].Value) != 0)
{
throw new Exception("No se puede compartir la carpeta.");
}
}
else
{
throw new DirectoryNotFoundException("No se encontro la carpeta a compartir");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Una vez agregada nuestra función solo nos queda utilizarla, yo cree dos carpetas de prueba en mi disco duro.
static void Main(string[] args)
{
CompartirFolder("c:\\test1", "Prueba 1", "Prueba de compartir carpeta desde C-Sharp");
CompartirFolder("c:\\test2", "Prueba 2", "Prueba de compartir carpeta desde C-Sharp");
}
Después de correr el programa verificamos las propiedades de nuestras carpetas y veremos que han quedado compartidas.
NOTA: Como pueden darse cuenta la carpeta queda compartida con Full Control para Todos los usuarios, ya en otro post veremos cómo asignar permisos a diferentes usuarios.
Saludos y hasta la próxima.
miércoles, 1 de septiembre de 2010
Microsoft LightSwitch
Pues la gente de Microsoft acaba de liberar la beta de Microsoft Visual Studio LightSwitch. Promete mucho la verdad ya que muchas tareas repetitivas se vuelven sencillas con esta herramienta, pero habría que ver que tanto control y que tan fácil será personalizar los valores por default que brinda la herramienta. Una opción más para preocuparnos mas por el contenido de nuestra aplicación que por el desarrollo.
Mas info en:
http://www.microsoft.com/visualstudio/en-us/lightswitch/
Saludos.
[Solución] The current identity (NT AUTHORITY\NETWORK SERVICE) does not have write access
"The current identity (NT AUTHORITY\NETWORK SERVICE) does not have write access to...Temporary ASP.NET Files"Este error puede ocurrir en instalaciones nuevas del framework o de IIS, por lo que no todo puede estar bien configurado. Afortunadamente la solución es sencilla.
- Abrimos un ventanda de Comandos (cmd)
- Nos dirigimos a la carpeta del framework que estemos utilizando, en mi caso 2.0, la ubicacion es: C:\[Windows Forlder]\Microsoft.NET\Framework\v2.0.50727\
- Una vez en esta carpeta pondremos el siguiente comando:
aspnet_regiis -ga "NT Authority\Network Service"Eso deberia de solucionar nuestro problema.
Saludos.
martes, 31 de agosto de 2010
Microsoft Certification Packs
lunes, 28 de junio de 2010
En mi opinión…Selección Mexicana
Soy un fan más del futbol como muchos más en este país. Pero hoy quiero expresar mi total inconformidad por las personas que dirigen el futbol mexicano. No se trata de buscar culpables, que si fueron los errores de los árbitros, que si fue el “OSO” de Osorio o la mala técnica empleada por el Conejo a la hora de salir por el balón. De lo que yo hablo es de los que nos vienen haciendo esto desde hace mas de 16 años (pongo esta fecha no por que solo sea desde esa época la que nos lo han hecho, sino porque desde esa tengo vivos recuerdos) México no pasa al quinto partido no porque seamos un equipo mediocre (como he leído en muchos lugares desde ayer) o porque no se tenga capacidad, o porque seamos conformistas, la respuesta es mas sencilla México no pasa a cuartos de final por las malas decisiones tomadas por los aquellos hombres de corbata que rodean al futbol mexicano. Ahora me explico mejor.
No puede ser que por intereses propios, arrogancia, egocentrismo y demás adjetivos que no quisiera mencionar en estos momentos, acaben con la ilusión que tenemos millones de mexicanos que somos aficionados al futbol, que los habemos optimistas (como un servidor) y también pesimistas, pero que al final ante una derrota o una victoria siempre sufrimos o disfrutamos por la misma pasión que nos une El Futbol. Recuerdo aún como si fuera ayer aquel partido ante Bulgaria en el mundial de futbol de USA 1994, casi el final del partido, todo el mundo sabia que era tiempo de meter a Hugo Sánchez, todos lo sabíamos (yo tenia 11 años en aquel entonces y a mi poco conocimiento de futbol lo sabia) pero un señor que muchos recordaran, Miguel Mejía Barón, creyó que Hugo Sánchez ya era lo suficientemente arrogante para meterlo al partido y comprobar que era necesario meterlo para ganarle a los búlgaros, así que su arrogancia pudo mas y lo dejo en la banca ante la incredulidad de todo el mundo, ya no solo de los propios mexicanos. Una mala decisión, una decisión personal, buscando solamente eso, intereses personales, les puedo apostar que si México le hubiera ganado a Bulgaria en penales, Mejía Barón se hubiera parado el cuello (como se dice comúnmente) diciendo que Hugo Sánchez no era necesario en la selección mexicana para ganarle a Bulgaria, pero le salio el tiro por la culata y muy al contrario nos hizo pensar que Hugo Sánchez era aquel que hubiera cambiado el final del partido. No sé si la historia hubiera sido diferente si Hugo hubiera entrado a la cancha, pero si creo que hablando objetivamente, Hugo estaba fresco (los demás jugadores casi estaban a punto de caer de cansancio), tenia (tiene) una mentalidad ganadora que lo llevo a ser lo que pésele a quien le pese es: El mejor jugador que ha dado México y que en aquel momento hubiera estado en mejores condiciones para tirar un penal.
Pero avancemos en el tiempo un poco más, la pasada copa mundial, Alemania 2006, una vez mas la arrogancia se hace presente en los señores de pantalones largos. Ricardo La Volpe, en ese entonces DT de la selección nacional, una vez más nos vuelve a demostrar que los intereses personales están muy por delante del que realmente es el objetivo de ir a cualquier campeonato mundial, o a cualquier competencia en general, que es “GANAR”. Por diferencias personales con Cuauhtemoc Blanco, no lo convoca al equipo que iría a Alemania a participar en la justa mundialista. Un rápido recordatorio de cómo se dio todo. Todo empezó cuando Cuauhtemoc Blanco no quiso jugar con la selección nacional, debido a un cansancio extremo dijo él. A mi parecer el estuvo en lo correcto, si uno no se siente en las condiciones suficientes para realizar algo (cualquier cosa), debes de permitir que alguien mas, que si se sienta en buenas condiciones y con las ganas para darlo todo lo intente. Pero como buenos mexicanos confundimos este acto de humildad, con arrogancia. Lo cual quiere decir que en aquel entonces hubieran preferido un Cuauhtemoc Blanco cansado y sin ganas de jugar en la cancha, que a cualquier otro jugador entero y al 100%. Cuestión de enfoques creo yo. Pero bueno el punto es que a Ricardo La Volpe no le agrado esto y cuando llego el momento de armar el equipo final que iría a Alemania, nada le importo que Cuauhtemoc pasara por uno de sus mejores momentos futbolísticos y lo dejo fuera de la justa mundialista, solamente para demostrar que él si es arrogante, egocéntrico y vengativo (al final argentino el señor). Una vez mas no sé si los resultados en Alemania hubieran sido diferentes si Blanco hubiera ido al mundial, pero siendo objetivos, cuando Cuauhtemoc Blanco entra a la cancha vistiendo la camiseta de cualquier equipo, marca una diferencia más que importante.
Ahora 16 años después de lo de Mejía Barón, 4 años después de lo de La Volpe, la arrogancia, el egocentrismo y la envidia vuelven a ser un factor mas que importante en el destino de la selección mexicana. Javier Aguirre, durante el mundial de futbol demostró una vez más que siempre será más importante demostrar que uno no se equivoca y que uno siempre toma las mejores decisiones, que ir por un bien mayor en el que todos salgamos beneficiados (en este caso el futbol mexicano y los millones de aficionado que habemos en este país). Oscar “El conejo” Pérez, un excelente portero, un excelente jugador, pero ya en el ocaso de su carrera futbolística (tanto así que hoy en día no cuanta ni siquiera con un equipo profesional con el cual jugar ahora que termino su participación en el mundial) lo pone como titular en todos los partidos de la selección, Resultado: 5 goles en contra. Guillermo Franco “El Guille” otro jugador en el ocaso de su carrera, lo pone de titular en los tres primeros partidos de la selección, en el partido contra Argentina, no lo pone como titular (ante tanta presión de los medios, redes sociales, etc.) pero al final lo mete al encuentro. Resultado: 0 goles en 3 partidos y medio. Adolfo “El Bofo” bautista, 31 años de edad, logros mmmmmmm muy pocos, un jugador que ya dio lo mejor que tenia y que ahora solo busca equipo para terminar su carrera, clasificado por muchos hoy en día como una piedra en la cancha, lo mete como titular en el partido mas importante de la selección, donde se jugaban el todo por el todo. Resultado: 0 goles y toco el balón como 5 veces y solo consiguió una falta a favor de México cerca del área Argentina, y Aguirre osa decir que él era el indicado para repartir juego, por favor. Resultados: 0 goles y muy poca interacción con el balón y en general con el equipo. Estos tres jugadores dejaron mucho que desear y fueron los que más participación tuvieron desde los juegos de preparación hasta la fecha. Por favor que alguien me explique paso con jugadores como, Javier Hernández “El Chicharito”, Pablo Barrera, Andrés Guardado, Jonathan Dos Santos, Carlos Vela, Guillermo Ochoa, Luis Michel, Cuauhtemoc Blanco (este ultimo partido lo dejo en la banca, creo que el segundo tiempo era un buen momento para meterlo), etc. Aguirre demostró su arrogancia dándoles la oportunidad al Guille Franco y al Bofo Bautista solo para demostrar que no se había equivocado al convocarlos, pero una vez mas las cosas no salieron bien, y quedo al descubierto ante toda la afición mexicana demostrando al final que si fue una mala decisión.
Pues espero que la FMF pueda tomar en consideración este tipo de cosas para cuando elijan un nuevo director técnico de la selección mexicana, ya que estoy seguro de que lo único que no cambiara para dentro de 4 años, será la afición que siempre damos lo máximo y no dejamos de creer en nuestra selección y que algún día llegara ese quinto partido y que porque no, seremos campeones del mundo.
Sé que algunos estaran de acuerdo y muchos mas en desacuerdo, acepto cualquier tipo de comentario…
Saludos…
lunes, 7 de junio de 2010
Facebook y Twitter
http://www.facebook.com/axy108
http://www.twitter.com/axy108
Saludos a todos.
sábado, 21 de noviembre de 2009
Windows 7…por $ 399 pesos Mex.
Pues llevo mas de 1 mes probando este nuevo sistema operativo que me imagino ya todos saben acaba de salir. Debo confesarles que estaba escéptico acerca de usarlo o no dadas las experiencias pasadas con Windows Vista, pero después de un rato de pruebas y de ver su comportamiento debo decir que recomiendo el cambio inmediatamente, mas si su maquina no tiene grandes prestaciones como lo requería Windows Vista.
Además Microsoft acaba de lanzar un programa en México para que realicen la compra de Windows 7 Home Premium por solo 399 pesos, esta oferta es valida solo para estudiantes, y solamente de una lista de escuelas, aquí les dejo el link con los detalles de la oferta y si son estudiantes aprovéchenla porque creo que vale la pena.
http://www.microsoft.com/mexico/windows/offers/windows-7-student-upgrade.aspx
Saludos y hasta la próxima.
Live from Atlanta
Hola a todos, pues esta semana que paso y la mitad de la que viene me encuentro en Atlanta, Georgia, recibiendo capacitación para el proyecto en el que estaré trabajando. Les mando un saludo desde acá y nos seguimos leyendo, espero pronto darme un tiempo para colocar otro nuevo tutorial.
Saludos y hasta la próxima.
Nuevo Trabajo
Pues si con la noticia de que me cambie de Trabajo, después de casi 4 años de laborar en AxxiS Consulting, he cambiado de trabajo, ya tiene aproximadamente 1 mes que me cambie, pero por lo mismo del cambio y todo eso no había tenido tiempo de escribir en mi BLOG, quiero agradecer a AxxiS y a todos mis compañeros que siempre me apoyaron y me entendieron, me llevo grandes experiencias y además y mas importantes grandes amigos con los cuales compartí y disfrute muchas cosas, hoy tomo otro camino en mi vida, y espero que todo salga bien. Saludos a todos en AxxiS y no me queda mas que decir: GRACIAS por todo.
Saludos y hasta la próxima.
viernes, 9 de octubre de 2009
Crear Lista o Biblioteca Dinámicamente en SharePoint Services 3.0 o MOSS 2007 con C#
Aquí es donde viene la parte interesante, vamos a agregar la referencia a nuestro Web Service de SharePoint, estos se instalan en cada sitio que creemos y se encuentran en la siguiente ruta:
3. Ahora agregaremos unos controles a nuestra pagina para probar nuestro Web Service. Aquí sus propiedades:
Control | ID | Text |
| Label | lblTipoLista | Tipo de Lista: |
| Label | lblNombre | Nombre: |
| Label | lblDescipcion | Descripción: |
| Label | lblResultadoSharepoint | |
| TextBox | txtNombre | |
| DropDownList | ddlTipo | |
| TextBox | txtDescripcion | |
| Button | btnCrear | Crear |
protected void Page_Load(object sender, EventArgs e)
{
ddlTipo.Items.Add(new ListItem("Announcements", "104"));
ddlTipo.Items.Add(new ListItem("Contacts", "105"));
ddlTipo.Items.Add(new ListItem("Custom List", "100"));
ddlTipo.Items.Add(new ListItem("Custom List in Datasheet View", "120"));
ddlTipo.Items.Add(new ListItem("DataSources", "110"));
ddlTipo.Items.Add(new ListItem("Discussion Board", "108"));
ddlTipo.Items.Add(new ListItem("Document Library", "101"));
ddlTipo.Items.Add(new ListItem("Events", "106"));
ddlTipo.Items.Add(new ListItem("Form Library", "115"));
ddlTipo.Items.Add(new ListItem("Issues", "1100"));
ddlTipo.Items.Add(new ListItem("Links", "103"));
ddlTipo.Items.Add(new ListItem("Picture Library", "109"));
ddlTipo.Items.Add(new ListItem("Survey", "102"));
ddlTipo.Items.Add(new ListItem("Tasks", "107"));
}
Esto agregar al DropDownList los diferentes tipos de Listas que podemos crear con el Web Service de SharePoint.
Para mas información ver:
http://msdn.microsoft.com/en-us/library/lists.lists.addlist.aspx
5. En la vista de diseño vamos a dar doble clic sobre el botón crear y agregamos el siguiente código:
protected void btnCrear_Click(object sender, EventArgs e)
{
System.Net.NetworkCredential credenciales = new System.Net.NetworkCredential("usuarioSharepoint","PasswordSharepoint", "DominioSharepoint");
ServicioSharePoint.Lists servicioList = new ServicioSharePoint.Lists();
servicioList.Credentials = credenciales;
XmlNode ndList = servicioList.AddList(txtNombre.Text,
txtDescripcion.Text, int.Parse(ddlTipo.SelectedValue));
lblResultadoSharepoint.Text= ndList.OuterXml;
}
Como pueden ver no es tan complicado como podemos pensar, si necesitan mas información sobre el Servicio Lists visiten:
http://msdn.microsoft.com/en-us/library/lists.aspx
Y mas Información sobre los Web Service de SharePoint y el alcance de los mismos, chequen:
http://msdn.microsoft.com/en-us/library/dd878586.aspx
Saludos y hasta la próxima.
En Cámara Lenta – Discovery Channel
Ayer tuve un tiempo de descanso en mi casa, y me puse a ver la tele, cambiándole de canal por todo el cable, me encontré con este programa de Discovery, se los recomiendo mucho, el ver como las cosas pasan en cámara lenta es impresionante y por lo menos a mi me encanto. Aquí les dejo la liga del programa para mas información:
http://www.tudiscovery.com/web/camaralenta/
Saludos y hasta la próxima.
jueves, 8 de octubre de 2009
Solución al Error “There is insufficient memory or disk space. Save the document now” o “Memoria Insuficiente. Guarde el documento ahora.”
El otro día tuve la necesidad de Crear Documento de Word dinámicamente desde ASP.NET, y encontré muchos ejemplos en la red, busque un código, lo implemente y cuando lo corrí en mi maquina (Windows Vista, Office 2003 y VS 2008) todo jalo de maravilla, pero llego el momento de publicar el sitio en IIS y en un Servidor, y ahí empezaron los problemas, cuando intentábamos crear el documento nos mandaba un error de que no había suficiente memoria, lo cual obviamente no era el problema ya que el Servidor tenia RAM suficiente y espacio en Disco también, investigando encontré que el problema es con la configuración del componente COM utilizado para generar el documento dinámicamente y aquí les dejo como solucionarlo paso a paso:
Primero ejecutamos el siguiente comando desde la ventana de Ejecutar (RUN), en Windows Vista lo pueden escribir en la opción de Iniciar búsqueda del botón de inicio:
DCOMCNFG
Se nos abrirá la ventana de configuración de Servicios de Componentes. Ya ahí vamos a:
Servicios de Componentes->Equipos->MI PC->Configuración DCOM
Y Buscamos la entrada que dice: “Documento de Microsoft Word” (si su equipo esta en ingles puede que diga “Word Document”) damos clic derecho sobre esta entrada y después en Propiedades. En la Ventana de Propiedades vamos a la ultima pestaña que dice Identidad, y donde nos pregunta “¿'Que cuenta de Usuario desea utilizar para ejecutar esta aplicación?” seleccionamos “El Usuario Interactivo”, aquí una pantalla de lo mencionado:
Aceptamos los cambios y cerramos la Ventana de Servicios de Componentes, y eso es todo el error debería de quedar corregido.
Saludos y hasta la próxima.
lunes, 5 de octubre de 2009
Red local entre Virtual PC y equipo Host
Muchas veces es necesario generar una maquina virtual para hacer pruebas de servidores, en mi caso tuve que generar una para un servidor de SharePoint, pero tenia el problema de que no lo podía ver desde mi equipo Host, así que me di a la tarea de investigar como era posible y aquí los pasos.
Primero que nada hay que descargar la ultima versión de Virtual PC, que afortunadamente ya es gratuita, aquí el link de descarga:
Lo instalamos, y una vez instalado cargamos una maquina virtual que tengamos ya hecha o creamos una desde cero, omitiré esos pasos ya que no es el objetivo de este tutorial. Nuestra Pantalla lucirá así:
De momento es todo con el virtual PC, ahora necesitamos instalar un componente de Windows que será el que nos permita crear la Red Virtual entre la Virtual PC y el sistema Host, este componente se llama, Adaptador de Bucle Invertido de Microsoft, para nuestra fortuna viene integrado dentro de la instalación del SO, así que solo seguiremos los siguientes pasos:
1. Vamos a Panel de Control-> Agregar Hardware…
2. En el Wizard de agregar Hardware seleccionamos Siguiente en la primer pantalla, después elegimos: “Instalar el Hardware Seleccionado de una Lista (Avanzado)” y damos clic en siguiente.
3. Nos aparecerá una lista con los Tipos de Hardware mas comunes, seleccionamos Adaptadores de Red.
4. En la siguiente pantalla (que tarda un poco en cargar) nos muestra la lista de marcas y adaptadores disponibles por marca, del lado derecho buscamos Microsoft y en la lista del lado derecho seleccionamos “Adaptador de Bucle Invertido de Microsoft” y damos clic una vez mas en siguiente.
5. En la ultima pantalla damos siguiente una vez mas para confirmar la selección y esperamos en lo que el adaptador se instala.
Esto provocara que se agregue una nueva conexión de red, esta es nuestra red virtual, si vamos ahora a Panel de control->Conexiones de Red veremos el adaptador instalado:
Ahora vamos a configurar el nuevo Adaptador para poder formar una Red Local entre las dos maquinas…Damos clic Derecho sobre el adaptador, seleccionamos propiedades, verificamos que tenga Seleccionada la opción de Virtual Machine Network Services, y seleccionamos donde dice Protocolo de Internet versión 4 y damos clic en el botón de propiedades de abajo.
En la Ventana que nos sale, vamos a configurar la IP que tendrá nuestro Host dentro de la Red que vamos a montar, vamos a poner las siguientes:
Dirección IP: 192.168.2.1
Mascara de Subred: 255.255.255.0
Aceptamos esta ventana y cerramos la siguiente, hasta aquí seria todo para el equipo Host, ahora vamos a configurar la Maquina Virtual.
De regreso en el Virtual PC Seleccionamos nuestra Maquina Virtual y damos clic en el botón de propiedades, en la ventana de propiedades vamos a la parte de Red y en la parte derecha seleccionamos un adaptador de red en el primer combo y después seleccionamos “Adaptador de Bucle Invertido de Microsoft”, la configuración queda como sigue:
Aceptamos todas las configuraciones y arrancamos nuestra Maquina Virtual. una vez que arranca nuestra maquina virtual, vamos a repetir los mismos pasos que en la maquina Host para configurar la IP del adaptador, Estos es:
Vamos a Panel de Control->Administrar Conexiones de Red, Damos clic derecho sobre el adaptador de Red, seleccionamos Propiedades.
En la nueva ventana seleccionamos la opción que dice Protocolo de Internet versión 4 y damos clic sobre el botón propiedades, solo que ahora vamos a asignara otra IP a la Maquina Virtual pero dentro del mismo rango que la de la maquina Host:
Dirección IP: 192.168.2.2
Mascara de Subred: 255.255.255.0
Aceptamos la configuración y damos cerrar en la otra ventana.
Ya con esta configuración es suficiente para que tengamos nuestra Red Local entre la maquina Virtual y el equipo Host. Aquí unas imágenes que comprueban lo que menciono:
Vista de la red de la maquina Virtual:
Ping desde la maquina Virtual a la Maquina Host, chequen que es la IP que utilizamos en la configuración de la maquina Host:
Ping desde la maquina Host a la maquina Virtual con la IP que le asignamos:
Ahora podemos montar servicios, compartir carpetas, etc. y tener acceso a ellos desde la maquina Virtual o viceversa.
Bueno hasta aquí este Tutorial, cualquier duda o comentario no duden en dejarlo o mandarme un correo.
Saludos.
Identidad Sustituta
El día de ayer me fui a ver esta película con Bruce Willis, se me hizo muy buena la verdad, es como que una reflejo avanzado de lo que ya hoy en día es nuestra sociedad, nos estamos convirtiendo en una sociedad virtual, solo por mencionar unos ejemplos, ahí esta MySpace, Hi5, FaceBook, el juego tan famoso que creo que todos hemos escuchado de el THE SIMS, etc., en la película hay partes que parecen demasiado absurdas y tontas, pero ya que analizamos con detenimiento lo que ahí sucede, de verdad que no saben cuanto se parece a la vida actual…bueno se las recomiendo mucho y lo dejo a discreción de cada uno de ustedes…
Saludos.
jueves, 1 de octubre de 2009
Concierto de Placebo
Pues con la novedad de que ayer me fui a ver el concierto de Placebo, se los recomiendo mucho, en lo personal no soy muy fan de ellos ni del tipo de música, pero debo decir que vale la pena completamente, así que si alguien tiene oportunidad de irlos a ver de verdad que no se los pierdan.
domingo, 27 de septiembre de 2009
GamerTag Xbox 360
Bueno pues acabo de agregar mi Gamertag de Xbox 360, lo pueden ver en el lado derecho del blog, así que los que quieran jugar en línea agréguenme y nos ponemos de acuerdo para jugar.
Saludos y hasta la próxima.
sábado, 26 de septiembre de 2009
Reiniciar Columnas Identity de Tablas en SQL Server
Bueno pues el otro día me tope con un problema no muy frecuente pero que creo que a todos nos puede pasar, estaba trabajando con un tabla que tiene su primary key como identity, en particular un catalogo de datos.
Tuve la necesidad de exportar esos datos a otra BD de producción y por unos errores al momento de la importación resulto que los índices ya no coincidían, porque los valores que se insertaron ahora eran diferentes de los que yo necesitaba.
Pues investigando un poco me encontré con una esta instrucción de T-SQL:
DBCC CHECKIDENT (‘NombreDeLaTabla’, RESEED,0)
Con esta instrucción podemos reiniciar los valores identity de la tabla en cuestión, yo tuve la necesidad de regresarlos a 0, pero ese valor puede ser cualquier otro que necesiten.
Para mas detalles les dejo el link de referencia de MSDN.
http://msdn.microsoft.com/es-es/library/ms176057.aspx
Saludos y hasta la próxima.
Examen 70-536…
Pues con la novedad de que he pasado mi primer examen de Certificación Microsoft, espero seguir así y el siguiente mes traerles mas noticias de mi camino a la certificación, el siguiente examen que haré será el 70-505.
Saludos y hasta la próxima…
miércoles, 22 de agosto de 2007
Exportar e Importar datos de SQL a Excel y Viceversa sin DTS
Bueno hace poco, tuve que realizar una importación de datos de Excel a SQL Server, la primera vez la realice con el Wizard de importación, pero hice una búsqueda en Google para ver si había una manera mas fácil y rápida, y si existe solo que todas las referencias que encontré por desgracia están en ingles, así que también uno de los propósitos de este blog es brindar recursos a la comunidad de desarrolladores mexicanos y latinoamericanos, pero en español, así que en mi primer entrada les explicare como se realiza este proceso.
Importación
Aquí tenemos una vista del libro de Excel del cual queremos leer los datos.
Para mayor facilidad en la lectura de los datos yo guarde el archivo en raíz, para que su ruta sea esta: C:\prueba.xls.
Entonces ahora lo que procede es escribir el query en el manager de Sql Server, el cual queda así:
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:\libro.xls',
'SELECT * FROM [exportar$]')
Si revisamos un poco el query veremos que no tiene gran ciencia a no ser por la instrucción OPENROWSET, la cual sirve para conectarnos a diversas fuentes de datos, y el ultimo select sirve para decirle a la función OPENROWSET de que hoja de Excel es de la que queremos traer los datos, si revisan la imagen de arriba, podrán ver que la hoja de mi libro de Excel se llama exportar.
El primer problema que me encontré al tratar de ejecutar este query fue que necesita tener habilitada la siguiente opción:
'Ad Hoc Distributed Queries', y para habilitar dicha opción necesitaremos ejecutar la siguiente consulta:
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
go
Con las cuales modificamos su valor de default que es 0 por 1, si desean regresar al valor predefinido, necesitan ejecutar la consulta solo que en lugar de 1 le deberán poner 0.
Ahora si, al momento de ejecutar el query el resultado es el siguiente:
Una vez que ya pudimos leer los datos del libro podremos hacer lo que queramos con ellos con mas consultas SQL, como insertarlos en una tabla existente, crear una tabla exclusiva para estos datos, etc, etc.
EXPORTAR
Para exportar datos a un libro de Excel, es igual de sencillo, solo cambia un poco la estructura del query, y un par de detalles que hay que cuidar.
El query queda así:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:\prueba1.xls;',
'SELECT * FROM [Sheet1$]') select * from GASTOS
Lo que estamos diciendo aquí es que queremos que inserte dentro de nuestra hoja de Excel “C:\prueba1.xls”, dentro de la hoja1 “["Sheet11$"]”, todo lo que encuentre dentro de la tabla GASTOS.
Los dos pequeños detalles a cuidar aquí son:
- El libro de Excel ya debe de existir en la ruta que le especifiquemos, esta instrucción no tiene la habilidad de crearlo.
- Dentro del libro que ya debe de estar creado, deben de existir en la primer fila el nombre de las columnas que se exportaran desde la(s) tablas de SQL Server.
Y eso es todo para mi primer entrada, espero les sea de utilidad.
Saludos,
.:.:AXY:.:.