Os dejo un link de Red Gate dónde podréis descargar este libro:
Troubleshooting SQL Server A guide for the accidental DBA. Jonathan Kehayias and Ted Krueger.
http://www.red-gate.com/our-company/about/book-store/accidental-dba
Si os gusta, también podéis comprar la edición impresa en Amazon.
domingo, 27 de noviembre de 2011
jueves, 3 de noviembre de 2011
Ahora también en tu móvil
Ya podéis leer los post desde vuestros móviles.
Tengo futuros post en mente que espero compartir con vosotros. Nos leemos en breve.
Salu2.
lunes, 8 de febrero de 2010
Desactivar un Trigger temporalmente
Para desactivar un trigger temporalmente y luego volver a activarlo, tenemos que hacer lo siguiente:
ALTER TABLE miTabla DISABLE TRIGGER ALL
--aquí ejecutaremos lo que necesitemos y luego lo volvemos a activar
ALTER TABLE miTabla ENABLE TRIGGER ALL
Realmente desactiva todos los triggers de esa tabla, si queremos uno en concreto en lugar de ALL especificamos el nombre del trigger.
ALTER TABLE miTabla DISABLE TRIGGER ALL
--aquí ejecutaremos lo que necesitemos y luego lo volvemos a activar
ALTER TABLE miTabla ENABLE TRIGGER ALL
Realmente desactiva todos los triggers de esa tabla, si queremos uno en concreto en lugar de ALL especificamos el nombre del trigger.
sábado, 21 de noviembre de 2009
Tips & Tricks Error SQLFile.sql
Al intentar ejecutar una consulta con el management studio nos da un error:

Para solucionarlo, podemos crearnos en ese mismo directorio un fichero que se llame SQLFile.sql sin contenido, y asunto solucionado. Otra manera es copiar el mismo fichero de otro equipo en el que tengamos SQL Server 2005 o 2008 instalado.

Para solucionarlo, podemos crearnos en ese mismo directorio un fichero que se llame SQLFile.sql sin contenido, y asunto solucionado. Otra manera es copiar el mismo fichero de otro equipo en el que tengamos SQL Server 2005 o 2008 instalado.
Recetario T-SQL
A groso modo vamos a ver el flujo que sigue una query:
Análisis -- Algebrizer (no se como traducirlo xD) -- Optimización -- Ejecución
Ahora veamos una pregunta que me llegaba vía email:
Supongamos que tenemos una tabla Prueba con dos columnas (IDPrueba y Descripcion), ejecutamos un script que elimina la columna Descripcion de la tabla y más adelante en el script encontramos lo siguiente:
IF 1=0
BEGIN
UPDATE Prueba SET Descripcion='Hola'
WHERE IDPrueba = 1
END
GO
Como 1 no es igual a cero no debe ejecutarse el contenido, pero al ejecutar el script vemos que nos devuelve un error advirtiéndonos de que el campo Descripcion es erróneo.
Mens. 207, Nivel 16, Estado 1, Línea 3
El nombre de columna 'Descripcion' no es válido.
Una solución para que no nos de este error es usar SQL dinámico y nuestro código quedaría tal que así:
IF 1=0
BEGIN
EXECUTE('UPDATE Prueba SET Descripcion=''Hola''
WHERE IDPrueba = 1')
END
GO
Análisis -- Algebrizer (no se como traducirlo xD) -- Optimización -- Ejecución
Ahora veamos una pregunta que me llegaba vía email:
Supongamos que tenemos una tabla Prueba con dos columnas (IDPrueba y Descripcion), ejecutamos un script que elimina la columna Descripcion de la tabla y más adelante en el script encontramos lo siguiente:
IF 1=0
BEGIN
UPDATE Prueba SET Descripcion='Hola'
WHERE IDPrueba = 1
END
GO
Como 1 no es igual a cero no debe ejecutarse el contenido, pero al ejecutar el script vemos que nos devuelve un error advirtiéndonos de que el campo Descripcion es erróneo.
Mens. 207, Nivel 16, Estado 1, Línea 3
El nombre de columna 'Descripcion' no es válido.
Una solución para que no nos de este error es usar SQL dinámico y nuestro código quedaría tal que así:
IF 1=0
BEGIN
EXECUTE('UPDATE Prueba SET Descripcion=''Hola''
WHERE IDPrueba = 1')
END
GO
miércoles, 11 de noviembre de 2009
Restore Database con SMO C#
Bueno para ir completando la serie de posts con SMO hoy toca el esperado restore. Antes de nada pediros disculpas por no haberlo publicado antes, pero ando liado por casa y no he tenido tiempo para actualizar el blog.
Aquí tenéis el código:

A tener en cuenta: en la cadena de conexión sólo especificad el servidor (Data Source) y el tipo de conexión (si es trusted o con credenciales de sql).
Aquí tenéis el código:

A tener en cuenta: en la cadena de conexión sólo especificad el servidor (Data Source) y el tipo de conexión (si es trusted o con credenciales de sql).
miércoles, 30 de septiembre de 2009
Compatibilidad hacia atrás en Office
Mediante la aplicación TlbImp.exe (http://msdn.microsoft.com/es-es/library/tt0cf3sx(VS.80).aspx) podremos convertir un componente COM de Office (por ser el tema del post) en una assembly .NET Interop lista para usar y distribuir con nuestra aplicación. La manera de hacerlo es simple y directa:
1.- Lo primero es localizar dónde está situada la aplicación TlbImp.exe: se encuentra en C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\
(o bien en la unidad dónde tengáis instalado Visual Studio)
2.- Copiamos el fichero (.olb ver último link del post para saber de lo que hablo) que queremos convertir en nuestra dll .NET, en un directorio por ejemplo C:\Interop
3.- Abrimos la línea de comando y vamos hasta la ruta dónde tenemos la aplicación TlbImp y escribimos
C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\TlbImp.exe C:\Interop\MSWord9.olb /out=C:\Interop\FRVSoft.Office.Word.dll
Y ya tendremos creada nuestra dll.
Ahora sólo tenemos que añadirla en las referencias de nuestro proyecto. Con esto conseguimos tener una compatibilidad desde Word 2000 hasta Word 2007. Claro está que si queremos usar alguna característica nueva de Office 2007 no dispondremos de ella en nuestra dll ya que partimos de la versión 2000.
Este enlace os puede ser de utilidad algún día en el futuro, cuando tengáis que pelear con Office desde vuestras aplicaciones, en distintos clientes con diferentes versiones de Office:
http://support.microsoft.com/kb/239930/es
1.- Lo primero es localizar dónde está situada la aplicación TlbImp.exe: se encuentra en C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\
(o bien en la unidad dónde tengáis instalado Visual Studio)
2.- Copiamos el fichero (.olb ver último link del post para saber de lo que hablo) que queremos convertir en nuestra dll .NET, en un directorio por ejemplo C:\Interop
3.- Abrimos la línea de comando y vamos hasta la ruta dónde tenemos la aplicación TlbImp y escribimos
C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\TlbImp.exe C:\Interop\MSWord9.olb /out=C:\Interop\FRVSoft.Office.Word.dll
Y ya tendremos creada nuestra dll.
Ahora sólo tenemos que añadirla en las referencias de nuestro proyecto. Con esto conseguimos tener una compatibilidad desde Word 2000 hasta Word 2007. Claro está que si queremos usar alguna característica nueva de Office 2007 no dispondremos de ella en nuestra dll ya que partimos de la versión 2000.
Este enlace os puede ser de utilidad algún día en el futuro, cuando tengáis que pelear con Office desde vuestras aplicaciones, en distintos clientes con diferentes versiones de Office:
http://support.microsoft.com/kb/239930/es
viernes, 11 de septiembre de 2009
Soluciones a problemas relacionados con T-SQL
Otro link interesante con multitud de soluciones e ideas para abordar los problemas del día a día.
http://code.msdn.microsoft.com/SQLExamples
http://code.msdn.microsoft.com/SQLExamples
Otro eBook por la patilla sobre SQL Server cortesía de Quest Software
Aquí tenéis los link para descargaros SQL Server: A Practical Guide to Backup, Recovery & Troubleshooting con copyright de Quest Software
Parte 1:
http://www.quest.com/quest_site_assets/whitepapers/sql_server_ebook_a_practical_guide_to_backup,_recovery,_and_troubleshooting_(part_1).pdf
Parte 2:
http://www.quest.com/quest_site_assets/whitepapers/sql_server_ebook_a_practical_guide_to_backup,_recovery,_and_troubleshooting_(part_2).pdf
Parte 1:
http://www.quest.com/quest_site_assets/whitepapers/sql_server_ebook_a_practical_guide_to_backup,_recovery,_and_troubleshooting_(part_1).pdf
Parte 2:
http://www.quest.com/quest_site_assets/whitepapers/sql_server_ebook_a_practical_guide_to_backup,_recovery,_and_troubleshooting_(part_2).pdf
jueves, 10 de septiembre de 2009
AdSense esa gran chapuza
Hoy recibo un correo en el que Google AdSense me dice:
Estimado/a :
Al revisar nuestros datos, hemos detectado que su cuenta de AdSense ha
supuesto un peligro importante para nuestros anunciantes de AdWords. Dada
la posibilidad de que el mantenimiento de su cuenta en nuestra red de
editores perjudique económicamente a los anunciantes en el futuro, hemos
decidido inhabilitarla.
Consideramos que esta medida es necesaria para proteger los intereses de
los anunciantes y los de los demás editores de AdSense. Somos conscientes
de que esta situación puede causarle molestias, por lo que agradecemos de
antemano su comprensión y cooperación.
Si tiene alguna pregunta sobre su cuenta o las acciones que hemos
realizado, no conteste a este mensaje. Encontrará más información en la
página siguiente:
https://www.google.com/adsense/support/bin/answer.py?answer=57153.
Atentamente,
El equipo AdSense de Google.
Macho ni que fuera el Dioni o Roldán. En tres años de AdSense no tengo ni para pipas xDDDD.
Gracias a la gente que haya pinchado en los anuncios.
Seguiré publicando (porque el objetivo es compartir lo que aprendo y plasmarlo por si a otra persona le sirve), y seguramente el blog ganará en espacio para otras cosas y no en anuncios chorras de lectura de manos y sus muertos los cuales aleatoriamente publicaba google.
P.D. La peonza, la trompeta y el par de calcetines, puedes venir a recogerlos cuando quieras y metértelos por el culo.
Estimado/a :
Al revisar nuestros datos, hemos detectado que su cuenta de AdSense ha
supuesto un peligro importante para nuestros anunciantes de AdWords. Dada
la posibilidad de que el mantenimiento de su cuenta en nuestra red de
editores perjudique económicamente a los anunciantes en el futuro, hemos
decidido inhabilitarla.
Consideramos que esta medida es necesaria para proteger los intereses de
los anunciantes y los de los demás editores de AdSense. Somos conscientes
de que esta situación puede causarle molestias, por lo que agradecemos de
antemano su comprensión y cooperación.
Si tiene alguna pregunta sobre su cuenta o las acciones que hemos
realizado, no conteste a este mensaje. Encontrará más información en la
página siguiente:
https://www.google.com/adsense/support/bin/answer.py?answer=57153.
Atentamente,
El equipo AdSense de Google.
Macho ni que fuera el Dioni o Roldán. En tres años de AdSense no tengo ni para pipas xDDDD.
Gracias a la gente que haya pinchado en los anuncios.
Seguiré publicando (porque el objetivo es compartir lo que aprendo y plasmarlo por si a otra persona le sirve), y seguramente el blog ganará en espacio para otras cosas y no en anuncios chorras de lectura de manos y sus muertos los cuales aleatoriamente publicaba google.
P.D. La peonza, la trompeta y el par de calcetines, puedes venir a recogerlos cuando quieras y metértelos por el culo.
martes, 8 de septiembre de 2009
C# parámetros por referencia (out y ref)
Para el CLR, out y ref son idénticos (generan los mismos metadatos y el mismo código IL), pero el compilador de C# los trata de manera distinta.
Esa distinción se basa en que, si usamos out en un parámetro de un método, no estamos obligados a inicializar el objeto antes de la llamada al método. En cambio si usamos ref, antes de la llamada al método debemos inicializar el valor del parámetro.
Otro punto a tener en cuenta es que no podemos sobrecargar un método en el que la sobrecarga difiera sólo en out y ref, ejemplo:
static void Suma(out Int32 n) { }
static void Suma(ref Int32 x) { }
Este caso provocaría un error de tipo 'Suma' cannot define overloaded methods that differ only on ref and out.
Esa distinción se basa en que, si usamos out en un parámetro de un método, no estamos obligados a inicializar el objeto antes de la llamada al método. En cambio si usamos ref, antes de la llamada al método debemos inicializar el valor del parámetro.
Otro punto a tener en cuenta es que no podemos sobrecargar un método en el que la sobrecarga difiera sólo en out y ref, ejemplo:
static void Suma(out Int32 n) { }
static void Suma(ref Int32 x) { }
Este caso provocaría un error de tipo 'Suma' cannot define overloaded methods that differ only on ref and out.
domingo, 6 de septiembre de 2009
Mejorando el rendimiento en nuestros constructores de clase
Cuanto más leo CLR Via C# más me gusta el libro, una de las cosas que me ha llamado la atención es la manera de declarar los diferentes constructores que pueda tener una clase. Por ejemplo, supongamos que tenemos una clase "X", con "n" campos a inicializar, y en esa clase definimos "X" constructores diferentes, ejemplo:
De esta forma estamos incurriendo en un gasto de recursos innecesarios, ya que estaremos inicializando los tres campos de la clase en cada constructor (en este caso 12 veces). _b nos garantiza que se inicializa a cero aunque no lo especifiquemos.
Lo correcto sería declarar los campos de clase sin inicializar, crear un constructor simple que inicialice los campos, y los demás constructores llamarán al constructor de inicialización común, para verlo más claro os pongo como quedaría el código:
Esta es la "magia" que nos aporta C#, que mediante "this" podamos llamar de un constructor a otro.
internal sealed class MenosRendimiento
{
private int _a = 1;
private string _cadena = "Hola";
private double _n = 5.125;
private byte _b;
public MenosRendimiento() { }
public MenosRendimiento(int a) { }
public MenosRendimiento(string cadena) { }
public MenosRendimiento(int a, string cadena) { }
}
De esta forma estamos incurriendo en un gasto de recursos innecesarios, ya que estaremos inicializando los tres campos de la clase en cada constructor (en este caso 12 veces). _b nos garantiza que se inicializa a cero aunque no lo especifiquemos.
Lo correcto sería declarar los campos de clase sin inicializar, crear un constructor simple que inicialice los campos, y los demás constructores llamarán al constructor de inicialización común, para verlo más claro os pongo como quedaría el código:
internal sealed class MasRendimiento
{
private int _a;
private string _cadena;
private double _n;
private byte _b;
//Este constructor inicializa los campos
//a su valor por defecto.
//todos los demás constructores llamarán
//explícitamente a este constructor
public MasRendimiento()
{
_a = 1;
_cadena = "Hola";
_n = 5.125;
_b = 0xff;
}
//Campos a valor por defecto y luego
//cambia a
public MasRendimiento(int a) : this()
{
_a = a;
}
//Campos a valor por defecto y luego
//cambia cadena
public MasRendimiento(string cadena) : this()
{
_cadena = cadena;
}
//Campos a valor por defecto y luego
//cambia a y cadena
public MasRendimiento(int a, string cadena)
: this()
{
_a = a;
_cadena = cadena;
}
}
Esta es la "magia" que nos aporta C#, que mediante "this" podamos llamar de un constructor a otro.
sábado, 5 de septiembre de 2009
Backup con SMO en C#
Así ya tenemos a los hermanitos (un ejemplo en el blog en VB y otro en C#):
try
{
using (SqlConnection cn = new SqlConnection(llConexion.Text))
{
cn.Open();
serverConnection = new ServerConnection(cn);
Backup bck = new Backup();
bck.Database = serverConnection.DatabaseName;
bck.Devices.Add(new BackupDeviceItem(rutaBackup + @"\" + serverConnection.DatabaseName + ".BAK", DeviceType.File));
bck.Action = BackupActionType.Database;
bck.SqlBackup(new Server(serverConnection));
MessageBox.Show("Proceso completado");
}
}
catch (SmoException ex)
{
MessageBox.Show(ex.Message);
}
Kill a todas las conexiones de una BD con SMO
Ahí va un post sencillito con SMO:
ServerConnection serverConnection = new ServerConnection(cn);)
using (SqlConnection cn = new SqlConnection(llConexion.Text))
{
cn.Open();
serverConnection = new ServerConnection(cn);
Server server = new Server(serverConnection);
server.KillAllProcesses(serverConnection.DatabaseName);
MessageBox.Show("Proceso terminado");
}
Dónde, llConexion.Text será la cadena de conexión con vuestra BD. ServerConnection es una variable global inicializada a null (en el contexto de mi aplicación, para este ejemplo podría haberla declarado después de abrir la conexión de esta manera,ServerConnection serverConnection = new ServerConnection(cn);)
viernes, 4 de septiembre de 2009
Teclas rápidas IE 8
Me encantan los atajos de teclado y no tener que estar dale que te pego al ratón, así que aquí os dejo las teclas rápidas de Internet Explorer 8:
http://www.microsoft.com/spain/windows/products/winfamily/ie/quickref.mspx
Que gozada, CTRL+TAB, CTRL+MAY+TAB, ALT+Inicio, CTRL+T, con estas me conformo y luego las pijadillas CTRL+Q
http://www.microsoft.com/spain/windows/products/winfamily/ie/quickref.mspx
Que gozada, CTRL+TAB, CTRL+MAY+TAB, ALT+Inicio, CTRL+T, con estas me conformo y luego las pijadillas CTRL+Q
miércoles, 2 de septiembre de 2009
[OT] Teléfono Windows
Más bien conocidos como Windows Phone, es la novedad que llegará el próximo 6 de Octubre. En realidad son los nuevos teléfonos equipados con Windows Mobile 6.5 y que serán distribuidos por las principales operadoras de telefonía y los principales fabricantes de teléfonos, aquí os dejo una relación por continentes:
- En Norte América: operadoras móviles AT&T, Bell Mobility, Sprint, TELUS y Verizon Wireless, fabricantes HP, HTC Corp., LG Electronics, Samsung y Toshiba Corp.
- En Europa: operadoras móviles Orange, Deutsche Telekom AG y Vodafone Group Plc, y fabricantes Acer, HTC, LG Electronics, Samsung, Sony Ericsson y Toshiba
- Latinoamérica: operadoras móviles TIM Brazil, y fabricantes HTC, LG Electronics y Samsung
- En Asia: operadoras móviles NTT DOCOMO Inc., SOFTBANK Mobile Corp., SK Telecom, Telstra y WILLCOM Inc., y fabricantes Acer Inc., HTC, LG Electronics, Samsung, Sony Ericsson y Toshiba
Al contrario de lo que he leído en otras páginas microsoft asegura que habrá teléfonos para todos los gustos, con teclado qwerty o sin teclado, con pantalla táctil y sin pantalla táctil, con acelerómetro, GPS y cámaras de alta resolución.
Fuente: http://windowsteamblog.com/blogs/windowsphone/archive/2009/09/01/windows-phones-are-coming-on-october-6th.aspx
- En Norte América: operadoras móviles AT&T, Bell Mobility, Sprint, TELUS y Verizon Wireless, fabricantes HP, HTC Corp., LG Electronics, Samsung y Toshiba Corp.
- En Europa: operadoras móviles Orange, Deutsche Telekom AG y Vodafone Group Plc, y fabricantes Acer, HTC, LG Electronics, Samsung, Sony Ericsson y Toshiba
- Latinoamérica: operadoras móviles TIM Brazil, y fabricantes HTC, LG Electronics y Samsung
- En Asia: operadoras móviles NTT DOCOMO Inc., SOFTBANK Mobile Corp., SK Telecom, Telstra y WILLCOM Inc., y fabricantes Acer Inc., HTC, LG Electronics, Samsung, Sony Ericsson y Toshiba
Al contrario de lo que he leído en otras páginas microsoft asegura que habrá teléfonos para todos los gustos, con teclado qwerty o sin teclado, con pantalla táctil y sin pantalla táctil, con acelerómetro, GPS y cámaras de alta resolución.
Fuente: http://windowsteamblog.com/blogs/windowsphone/archive/2009/09/01/windows-phones-are-coming-on-october-6th.aspx
lunes, 31 de agosto de 2009
SQL Server 2008 R2 y mi BD de Producción
Atención, si instaláis la actualización a SQL Server 2008 R2 CTP y atacháis una BD en Producción (digo esta porque es la más importante por el destrozo que puede ocasionar xDDD, pero vale para cualquiera), que sepáis, que si luego os arrepentís y volvéis a SQL Server 2008 SP1 o RTM, no os dejará atachar ni restaurar la BD. El problema radica en que cambia la versión física de la BD a 660 mientras que nuestra BD en SQL Server 2008 SP1 está en una versión 655.
Esto no lo digo yo, lo dice mi amigo Paul Randal, así que hacedle caso y cuidadín con los probeteos.
Esto no lo digo yo, lo dice mi amigo Paul Randal, así que hacedle caso y cuidadín con los probeteos.
miércoles, 26 de agosto de 2009
Windows Server 2008 y MSDE 2000
He leído en internet, a gente que dice que la MSDE 2000 no funciona bajo Windows Server 2008, porque es demasiado vieja, etc.
Puedo deciros que es completamente falso, ya que en uno de nuestros clientes tenemos funcionando nuestra aplicación de gestión bajo MSDE 2000 con SP4 en un servidor con Windows Server 2008.
Puedo deciros que es completamente falso, ya que en uno de nuestros clientes tenemos funcionando nuestra aplicación de gestión bajo MSDE 2000 con SP4 en un servidor con Windows Server 2008.
jueves, 13 de agosto de 2009
Importar fichero XML a una tabla
Esto sólo funciona para SQL Server 2005 y SQL Server 2008. Se puede conseguir gracias a la opción BULK de OPENROWSET y luego usando la capacidad XQuery que nos proporciona SQL Server para parsear el xml en una tabla.

Lo que intento es volcar los datos de ID y Titulo en una tabla Libros, para ello, nos creamos la tabla:

Al lío que me lío.
En C:\Libros.xml tengo un xml conteniendo:

Lo que intento es volcar los datos de ID y Titulo en una tabla Libros, para ello, nos creamos la tabla:
--Creamos la tabla
CREATE TABLE Libros(
ID INT PRIMARY KEY,
Titulo VARCHAR(100))
Y ahora pasamos los datos (os pongo una imagen con todo el código y el resultado del select sobre la tabla):

miércoles, 5 de agosto de 2009
Pantallazo azul
Bueno con esto quiero responder a un correo de un amigo y la discusión que planteaba en el correo. En esta imagen se puede ver una máquina de CocaCola con un pantallazo azul. El motivo de este post es aclarar que ese pantallazo azul no es consecuencia de un error de memoria, sino un error con un controlador USB. Si os fijáis en la última línea del pantallazo veréis que dice usbhub.sys
Investigando un poco he llegado a un blog en el que explican este error y su posible solución, el link lo tenéis aquí:
http://ayudabsod.blogspot.com/2009/06/kerneldatainpageerror-0x0000007a.html
http://ayudabsod.blogspot.com/2009/06/kerneldatainpageerror-0x0000007a.html
Pero como no podemos fiarnos de todo lo que leemos, he seguido investigando un poco más.
Varias de las cosas que he aprendido es:
1.- El pantallazo nos da la información para indagar en el error, sólo tenemos que saber diferenciar la paja del grano. Las tres líneas que nos dan la información son, una que dice, KERNEL_DATA_INPAGE_ERROR
luego otra que dice STOP: 0x0000007A (parámetro1, parámetro2, parámetro3, parámetro4)
y por último la última línea que dice usbhub.sys
1.- El pantallazo nos da la información para indagar en el error, sólo tenemos que saber diferenciar la paja del grano. Las tres líneas que nos dan la información son, una que dice, KERNEL_DATA_INPAGE_ERROR
luego otra que dice STOP: 0x0000007A (parámetro1, parámetro2, parámetro3, parámetro4)
y por último la última línea que dice usbhub.sys
2.- Con estos datos vamos a la biblioteca de Microsoft, ya que son sus errores (;-)) y con un poco de suerte tendremos la solución
http://msdn.microsoft.com/en-us/library/ms793989.aspx
Si os fijáis en los parámetros entre paréntesis, el segundo parámetro nos dice, según la msdn:
0xC0000185, or STATUS_IO_DEVICE_ERROR, indicates improper termination or defective cabling on SCSI devices or that two devices are trying to use the same IRQ
http://msdn.microsoft.com/en-us/library/ms793989.aspx
Si os fijáis en los parámetros entre paréntesis, el segundo parámetro nos dice, según la msdn:
0xC0000185, or STATUS_IO_DEVICE_ERROR, indicates improper termination or defective cabling on SCSI devices or that two devices are trying to use the same IRQ
No he encontrado más información acerca de los demás parámetros ya que no se diferencian bien los caracteres. Tampoco sabemos que sistema operativo usa la dichosa máquina.
Suscribirse a:
Entradas (Atom)