Al final se corrobora que no sólo de soft vivimos sino que también tenemos que bajar a los infiernos del hard para solventar problemas extraños que te hacen calentarte la cabeza y discutir con tus compañeros y clientes.
En fin, a los que os pueda surgir este error:
[DBNETLIB]Error general de red. Consulte la documentación de red
Con esta configuración:
Windows 2003 Server con SP2 y SQL Server 2005 con SP2 y equipados con una tarjeta de red modelo NC373i. Como veréis no sólo se puede producir con esta configuración (expongo esta por ser la que me ha originado el dolor de cabeza :) )
La solución que nos aporta Microsoft la tenéis en este enlace:
http://support.microsoft.com/kb/942861
Por supuesto recordaros que si aplicando las recomendaciones que nos ofrece Microsoft no conseguimos solucionarlo, debemos pasar a la acción y comprobar que nuestras bases de datos estén libres de errores de consistencia.
viernes, 29 de agosto de 2008
viernes, 8 de agosto de 2008
REPAIR_ALLOW_DATA_LOSS y el daño que podemos causar en nuestra BD.
La gran mayoría de las veces que nos enfrentemos a un problema en nuestra base de datos la solución que nos ofrece el comando DBCC CHECKDB será que usemos la opción REPAIR_ALLOW_DATA_LOSS, pues bien, antes de lanzarnos de cabeza debemos tener en cuenta los riesgos que podemos sufrir.
REPAIR_ALLOW_DATA_LOSS es un recurso rápido para poner en funcionamiento nuestra base de datos, el propósito no es guardar los datos de los usuarios, sino recuperar la consistencia estructural de la BD, tan rápido como sea posible de una manera correcta. Pero en este proceso para conseguir la consistencia borrará tanto datos como páginas corruptas.
Imaginemos el siguiente escenario, el DBA de nuestra entidad bancaria no realiza los backups necesarios para preservar la información y recuperarse de un desastre. El servidor sufre un apagón y resulta dañado un disco duro no pudiendo guardar correctamente una página, causando un TORN PAGE. Desafortunadamente en esa página está nuestra cuenta corriente. Como el DBA no dispone de copias de seguridad realiza una reparación con REPAIR_ALLOW_DATA_LOSS. Como resultado de esta reparación la página dañada resulta borrada!!! Y con ella nuestra cuenta corriente y la muchos otros clientes!!! xDDD
REPAIR_ALLOW_DATA_LOSS es un recurso rápido para poner en funcionamiento nuestra base de datos, el propósito no es guardar los datos de los usuarios, sino recuperar la consistencia estructural de la BD, tan rápido como sea posible de una manera correcta. Pero en este proceso para conseguir la consistencia borrará tanto datos como páginas corruptas.
Imaginemos el siguiente escenario, el DBA de nuestra entidad bancaria no realiza los backups necesarios para preservar la información y recuperarse de un desastre. El servidor sufre un apagón y resulta dañado un disco duro no pudiendo guardar correctamente una página, causando un TORN PAGE. Desafortunadamente en esa página está nuestra cuenta corriente. Como el DBA no dispone de copias de seguridad realiza una reparación con REPAIR_ALLOW_DATA_LOSS. Como resultado de esta reparación la página dañada resulta borrada!!! Y con ella nuestra cuenta corriente y la muchos otros clientes!!! xDDD
domingo, 15 de junio de 2008
Cómo nos puede ayudar Excel a la hora de preparar instrucciones SQL
Aquí os pongo un ejemplo de cómo preparar un INSERT generando las instrucciones desde una hoja de excel.
Tenemos una tabla Usuarios, con dos columnas ID y Nombre, la fórmula que tenemos que emplear para preparar la instrucción INSERT es:
=" INSERT INTO Usuarios (ID, Nombre) VALUES ('" & A1 & "', '" & B1 & "'); "
Observaciones: después del paréntesis tenemos una comilla simple acompañada de dobles comillas, con esto conseguimos que excel escriba ', luego después del & tenemos dobles comillas y por último comilla simple y así conseguimos que el dato salga formateado como 'Francisco'
=" INSERT INTO Usuarios (ID, Nombre) VALUES ('" & A1 & "', '" & B1 & "'); "
Observaciones: después del paréntesis tenemos una comilla simple acompañada de dobles comillas, con esto conseguimos que excel escriba ', luego después del & tenemos dobles comillas y por último comilla simple y así conseguimos que el dato salga formateado como 'Francisco'
Después de montar la primera instrucción lo único que tendremos que hacer es arrastrar y soltar hasta dónde queramos y automáticamente se generarán las instrucciones con sus variables correspondientes.
viernes, 13 de junio de 2008
Obtener las columnas de una tabla
A veces nos encontramos con la necesidad de obtener todos los campos de una tabla para preparar una instrucción INSERT, si la tabla tiene muchos campos es un tostón tener que ir mirando sus nombres en el Management Studio y tecleándolos, con el más que probable error a la hora de escribir sus nombres correctamente. Para ello podemos utilizar la siguiente query, nos situamos en la BD que queremos consultar
USE Gestion
GO
SELECT sc.name
FROM sys.objects so INNER JOIN sys.columns sc ON
so.[object_id]=sc.[object_id]
WHERE so.name='Cliente'
En un próximo post os explicaré la manera de preparar un INSERT con todos los campos de una tabla en cuestión, para que quede la instrucción toda completita y sólo tengamos que copiar y pegar y F5. xDDD
Me piro para Murcia que quiero coger buen sitio para la charla.
USE Gestion
GO
SELECT sc.name
FROM sys.objects so INNER JOIN sys.columns sc ON
so.[object_id]=sc.[object_id]
WHERE so.name='Cliente'
En un próximo post os explicaré la manera de preparar un INSERT con todos los campos de una tabla en cuestión, para que quede la instrucción toda completita y sólo tengamos que copiar y pegar y F5. xDDD
Me piro para Murcia que quiero coger buen sitio para la charla.
miércoles, 11 de junio de 2008
GUSENET: Estamos en la nube
13 de Junio de 2008
Universidad de Murcia. Facultad de Informática, Aula 0.01 (Primera Planta)
16:00 - 16:30 Registro
16:30 - 17:45 Desarrollo avanzado de controles (Pedro Hurtado)
17:45 - 18:15 Descanso
18:15 - 19:30 SOA, OSLO, SAAS... (Miguel Llopis)
Link para inscribiros:
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032380266&Culture=es-ES
Universidad de Murcia. Facultad de Informática, Aula 0.01 (Primera Planta)
16:00 - 16:30 Registro
16:30 - 17:45 Desarrollo avanzado de controles (Pedro Hurtado)
17:45 - 18:15 Descanso
18:15 - 19:30 SOA, OSLO, SAAS... (Miguel Llopis)
Link para inscribiros:
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032380266&Culture=es-ES
domingo, 8 de junio de 2008
Arrastrar y soltar sobre un PictureBox
Bueno esto es algo sencillo de hacer y como no había encontrado nada buscando por internet, pues lo posteo esperando que a alguien le pueda servir.
El código he pensado que era mejor subirlo en una imagen porque no he investigado mucho otra manera de que quede bien publicado en un post (ya sabéis, no indenta bien y no es muy legible). La aplicación de ejemplo es muy sencilla, tenemos un formulario con 2 picturebox y lo que hace es arrastrar la imagen desde uno de ellos al otro y copiarla (podría haberlo hecho que se moviera, etc, pero eso os lo dejo a vosotros, de todas formas ya os digo que es muy sencillo).

Ahora veamos como queda el formulario nada más cargarlo, con una buena pinta de cerveza negra :-)

Eso es todo amigos, hasta la próxima que no se si será de VB o SQL ;-P
El código he pensado que era mejor subirlo en una imagen porque no he investigado mucho otra manera de que quede bien publicado en un post (ya sabéis, no indenta bien y no es muy legible). La aplicación de ejemplo es muy sencilla, tenemos un formulario con 2 picturebox y lo que hace es arrastrar la imagen desde uno de ellos al otro y copiarla (podría haberlo hecho que se moviera, etc, pero eso os lo dejo a vosotros, de todas formas ya os digo que es muy sencillo).

Ahora veamos como queda el formulario nada más cargarlo, con una buena pinta de cerveza negra :-)

Y por fin como quedan las imágenes después de haber pinchado sobre la primera y sin soltar arrastrar y soltar sobre el segundo picturebox.
Eso es todo amigos, hasta la próxima que no se si será de VB o SQL ;-P
lunes, 26 de mayo de 2008
Thumbs
Investigando un poco como cargar miniaturas de imágenes de un directorio y gracias a un compañero de Gusenet di con esta librería ThumbDBLib (la podéis descargar de http://www.petedavis.net/MySite/DynPageView.aspx?pageid=31, en el apartado License tenéis el enlace a la descarga, atentos a los comentarios pues uno contiene una modificación de la librería para que no pixele las miniaturas), a nosotros finalmente no nos hizo falta para el trabajo pero seguramente a más de uno, aunque sea por curiosidad le gustará saber lo fácil que puede ser visualizar una miniatura de una imagen en un formulario.
Suscribirse a:
Entradas (Atom)


