Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Error con la configuración de ARITHABORT

294 views
Skip to first unread message

DARweb.es

unread,
Mar 18, 2009, 8:29:39 AM3/18/09
to
Hola a todos

Estoy muy confundido con este error que tengo entre VB.Net 2003 y SQL Server 2000

Tengo un procedimiento almacenado de lo más simple; solo contiene un DELETE y una variable; si lo ejecuto desde el Analizador de Consultas funciona a la perfección; pero desde la aplicación VB.Net me da un curioso error que nunca antes había visto:
Error de DELETE porque las siguientes opciones SET tienen una configuración incorrecta: 'ARITHABORT'
He estado buscando información sobre este mensaje de error, pero no he visto mucho.  He probado a añadir al procedimiento almacenado la sentencia:
SET ARITHABORT ON     y como continuó sin funcionar también probé poniéndolo en OFF; pero nada , el mismo mensaje de error en ambos casos
¿Cómo puedo superar este problema?, ¿por qué me pasa esto?, ¿por qué si lo ejecuto directamente va bien y desde una aplicación .NET da error (el usuario SQL es el mismo)?
 
Muchas gracias desde ya
 
Saludos
 
XTV

-----------------------------
www.darweb.es

 

DARweb.es

unread,
Mar 18, 2009, 9:30:12 AM3/18/09
to
No; no tengo nada similar.

Lo más "raro" que hago es que la tabla de la que quiero borrar se encuentra en una BD distinta de la que contiene el procedimiento almacenado. No obstante, esto mismo lo he he hecho otras veces sin ningún problema, aparte de que al funcionar desde el Analizador de consultas entiendo que el problema debe ser otro.
 
El contenido del procedimiento es este:
 
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
SET ARITHABORT ON
Go
 
Create procedure spDelFormasPagoPreConfiguradasEnSage_ByCodComercio
    @CodComercio as varchar(5)
AS
 
SET NOCOUNT ON
 
 
 DELETE FROM Sage100.dbo.F_REGLEMENTT WHERE (CT_Num = @CodComercio)
 

GO
SET ARITHABORT OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
 
Muchas gracias por el aporte
Saludos
 
XTV

----------------------
www.darweb.es

 


--------------------------------------------------
From: "Alejandro Mesa" <Alejan...@discussions.microsoft.com>
Sent: Wednesday, March 18, 2009 2:01 PM
Newsgroups: microsoft.public.es.sqlserver
Subject: RE: Error con la configuración de ARITHABORT

> Por casualidad tienes alguna column calculada que forma parte de un indice,
> en esa tabla?
>
>
> AMB

>
> "DARweb.es" wrote:
>
>> Hola a todos
>>
>> Estoy muy confundido con este error que tengo entre VB.Net 2003 y SQL Server 2000
>>
>> Tengo un procedimiento almacenado de lo más simple; solo contiene un DELETE y una variable; si lo ejecuto desde el Analizador de Consultas funciona a la perfección; pero desde la aplicación VB.Net me da un curioso error que nunca antes había visto:
>>   Error de DELETE porque las siguientes opciones SET tienen una configuración incorrecta: 'ARITHABORT'
>> He estado buscando información sobre este mensaje de error, pero no he visto mucho.  He probado a añadir al procedimiento almacenado la sentencia:
>>   SET ARITHABORT ON     y como continuó sin funcionar también probé poniéndolo en OFF; pero nada , el mismo mensaje de error en ambos casos
>> ¿Cómo puedo superar este problema?, ¿por qué me pasa esto?, ¿por qué si lo ejecuto directamente va bien y desde una aplicación ..NET da error (el usuario SQL es el mismo)?

Alejandro Mesa

unread,
Mar 18, 2009, 9:52:15 AM3/18/09
to
Alguna vista indexada que use a esta tabla?

Primero debemos saber por que esta dando el error, luego ver como arreglarlo.

El analizador de consultas prende, por defecto, un numero de opciones, tales
como:

- QUOTED_IDENTIFIER
- ANSI_NULL_DFLT_ON
- ANSI_PADDING
- ANSI_WARNINGS
- ANSI_NULLS
- CONCAT_NULL_YIELDS_NULL
- ARITHABORT

Si usas SQL Profiler para chequear lo que QA envia hacia el servidor, veras
que lo primero que envia, cuando creas una nueva conexion es el batch:

SET CONCAT_NULL_YIELDS_NULL ON
SET ARITHABORT ON
SET ANSI_NULLS ON
SET ANSI_NULL_DFLT_ON ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET QUOTED_IDENTIFIER ON

Trata de hacer lo mismo desde tu aplicacion, en cuanto abras la conexion,
envie ese batch antes de llamar al procedimiento.

Es requerimiento tener prendida la opcion ARITHABORT para ejecutar
sentencias DML sobre tablas que tienen columnas calculadas que forman parte
de un indice y/o vistas indexadas.

Opciones SET que afectan a los resultados
http://msdn.microsoft.com/es-es/library/ms175088(SQL.90).aspx


Se que usas SQL Server 2000, pero esto te puede servir de guia.


AMB

Maxi

unread,
Mar 18, 2009, 10:45:07 AM3/18/09
to
Hola, pone una traza con el profiler para determinar las exepciones, ahi vas a tener que poner tsql startting asi ves donde marca el error y porque

--

---------------------------------------------------------------------
Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Server
---------------------------------------------------------------------
"DARweb.es" <e...@midominio.es> escribió en el mensaje de noticias:eDa33U8p...@TK2MSFTNGP02.phx.gbl...

DARweb.es

unread,
Mar 20, 2009, 7:45:47 AM3/20/09
to
Hola Alejandro;
 
Muchas gracias por tu respuesta; ciertamente se ha arreglado el problema enviando antes el batch que me indicas, .... ¡qué cosas más raras que hay que hacer a veces!.
 
Saludos
 
XTV

----------------------
www.darweb.es

 



"Alejandro Mesa" <Alejan...@discussions.microsoft.com> escribió en el mensaje de noticias:7E32732F-94D3-400A...@microsoft.com...
0 new messages