SQLServer 2000 y ADP ... NO reconoce errores !!

11/11/2005 - 23:14 por Jordi | Informe spam
Hola a todos, estoy agobiado porqué NO puedo depurar el código !!

Resumiré el problema en dos líneas:

Tengo: SQLServer 2000 y una Aplicación ADP

Creo una tabla con un campo "c1" que es PK

Si abro la tabla desde el ADP y inserto un registro 'a' y otro 'b' no hay
problema. Si inserto otra vez un registro 'a', al ser el campo PK debería
mostrarme un mensaje de error, pero NO ME MUESTRA NADA. Simplemente no me
deja hacer nada de nada hasta que pulso ESC.

c1

a
b
a <-- Y aquí se queda. NO me muestra el mensaje de error. No hace nada de
nada.

Realizando lo mismo desde SQLServer salta el mensaje de error pertinente.
Pero la aplicación ADP NO LA RECONOCE !!!

De la misma manera desde código NO puedo capturar ninguna excepción de
duplicidad, nulos ... ya que NUNCA salta al GOTO de ON ERROR GOTO ...

Diós, me podeis ayudar ? ya no se que mirar !!!

Gracias

Jordi

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
12/11/2005 - 00:04 | Informe spam
Sugiero que preguntes en los foros de Access.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Jordi" wrote in message
news:
Hola a todos, estoy agobiado porqué NO puedo depurar el código !!

Resumiré el problema en dos líneas:

Tengo: SQLServer 2000 y una Aplicación ADP

Creo una tabla con un campo "c1" que es PK

Si abro la tabla desde el ADP y inserto un registro 'a' y otro 'b' no hay
problema. Si inserto otra vez un registro 'a', al ser el campo PK debería
mostrarme un mensaje de error, pero NO ME MUESTRA NADA. Simplemente no me
deja hacer nada de nada hasta que pulso ESC.

c1

a
b
a <-- Y aquí se queda. NO me muestra el mensaje de error. No hace nada de
nada.

Realizando lo mismo desde SQLServer salta el mensaje de error pertinente.
Pero la aplicación ADP NO LA RECONOCE !!!

De la misma manera desde código NO puedo capturar ninguna excepción de
duplicidad, nulos ... ya que NUNCA salta al GOTO de ON ERROR GOTO ...

Diós, me podeis ayudar ? ya no se que mirar !!!

Gracias

Jordi
Respuesta Responder a este mensaje
#2 Penta
12/11/2005 - 00:06 | Informe spam
Hola.
Favor copia el codigo donde realizas la insercion.

Ademas copia el script de la tabla.

Atte.
Penta.
Respuesta Responder a este mensaje
#3 Jordi
12/11/2005 - 14:22 | Informe spam
Hola Penta, estoy desquiciado !!

A ver, para que sea más fácil, el código de inserción no te lo escribo ya
que abriendo la tabla y introduciendo un registro duplicado no me salta la
excepción desde la aplicación ADP.

El Script de la tabla es el siguiente. He activado TODAS las opciones aunque
creo que sólo te interesa la parte final. Gracias por ayudarme PENTA:


exec sp_dboption N'DataSA2', N'autoclose', N'false'
GO

exec sp_dboption N'DataSA2', N'bulkcopy', N'true'
GO

exec sp_dboption N'DataSA2', N'trunc. log', N'true'
GO

exec sp_dboption N'DataSA2', N'torn page detection', N'true'
GO

exec sp_dboption N'DataSA2', N'read only', N'false'
GO

exec sp_dboption N'DataSA2', N'dbo use', N'false'
GO

exec sp_dboption N'DataSA2', N'single', N'false'
GO

exec sp_dboption N'DataSA2', N'autoshrink', N'true'
GO

exec sp_dboption N'DataSA2', N'ANSI null default', N'false'
GO

exec sp_dboption N'DataSA2', N'recursive triggers', N'false'
GO

exec sp_dboption N'DataSA2', N'ANSI nulls', N'false'
GO

exec sp_dboption N'DataSA2', N'concat null yields null', N'false'
GO

exec sp_dboption N'DataSA2', N'cursor close on commit', N'false'
GO

exec sp_dboption N'DataSA2', N'default to local cursor', N'false'
GO

exec sp_dboption N'DataSA2', N'quoted identifier', N'false'
GO

exec sp_dboption N'DataSA2', N'ANSI warnings', N'false'
GO

exec sp_dboption N'DataSA2', N'auto create statistics', N'true'
GO

exec sp_dboption N'DataSA2', N'auto update statistics', N'true'
GO

use [DataSA2]
GO

/****** Object: Table [dbo].[_prova] Script Date: 12/11/2005 14:16:32
******/
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[_prova]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[_prova]
GO

/****** Object: Login sa2 Script Date: 12/11/2005 14:16:32 ******/
if not exists (select * from master.dbo.syslogins where loginname = N'sa2')
BEGIN
declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb =
N'DataSA', @loginlang = N'us_english'
if @logindb is null or not exists (select * from master.dbo.sysdatabases
where name = @logindb)
select @logindb = N'master'
if @loginlang is null or (not exists (select * from master.dbo.syslanguages
where name = @loginlang) and @loginlang <> N'us_english')
select @loginlang = @@language
exec sp_addlogin N'sa2', null, @logindb, @loginlang
END
GO

/****** Object: Login BUILTIN\Administradores Script Date: 12/11/2005
14:16:32 ******/
exec sp_addsrvrolemember N'BUILTIN\Administradores', sysadmin
GO

/****** Object: User dbo Script Date: 12/11/2005 14:16:32 ******/
/****** Object: User sa2 Script Date: 12/11/2005 14:16:32 ******/
if not exists (select * from dbo.sysusers where name = N'sa2' and uid < 16382)
EXEC sp_grantdbaccess N'sa2', N'sa2'
GO

/****** Object: User sa2 Script Date: 12/11/2005 14:16:32 ******/
exec sp_addrolemember N'db_owner', N'sa2'
GO

/****** Object: Table [dbo].[_prova] Script Date: 12/11/2005 14:16:33
******/
CREATE TABLE [dbo].[_prova] (
[nom] [varchar] (50) NOT NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[_prova] WITH NOCHECK ADD
CONSTRAINT [PK__prova] PRIMARY KEY CLUSTERED
(
[nom]
) ON [PRIMARY]
GO

"Penta" escribió:

Hola.
Favor copia el codigo donde realizas la insercion.

Ademas copia el script de la tabla.

Atte.
Penta.


Respuesta Responder a este mensaje
#4 Jordi
12/11/2005 - 14:24 | Informe spam
Gustavo, ya lo haré pero creo que debe de ser problema del servidor, no de
las distintas plataformas Access que podamos tener instaladas, no crees ?

No lo se, ya he escrito a Access también y nadie sabe lo que puede estar
sucediendo.

Jordi.

"Gustavo Larriera [MVP]" escribió:

Sugiero que preguntes en los foros de Access.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Jordi" wrote in message
news:
> Hola a todos, estoy agobiado porqué NO puedo depurar el código !!
>
> Resumiré el problema en dos líneas:
>
> Tengo: SQLServer 2000 y una Aplicación ADP
>
> Creo una tabla con un campo "c1" que es PK
>
> Si abro la tabla desde el ADP y inserto un registro 'a' y otro 'b' no hay
> problema. Si inserto otra vez un registro 'a', al ser el campo PK debería
> mostrarme un mensaje de error, pero NO ME MUESTRA NADA. Simplemente no me
> deja hacer nada de nada hasta que pulso ESC.
>
> c1
>
> a
> b
> a <-- Y aquí se queda. NO me muestra el mensaje de error. No hace nada de
> nada.
>
> Realizando lo mismo desde SQLServer salta el mensaje de error pertinente.
> Pero la aplicación ADP NO LA RECONOCE !!!
>
> De la misma manera desde código NO puedo capturar ninguna excepción de
> duplicidad, nulos ... ya que NUNCA salta al GOTO de ON ERROR GOTO ...
>
> Diós, me podeis ayudar ? ya no se que mirar !!!
>
> Gracias
>
> Jordi



Respuesta Responder a este mensaje
#5 Jordi
12/11/2005 - 14:52 | Informe spam
Hola Otra vez penta, un ejemplo de código sencillo es:

Sub jordi()
On Error GoTo jordi_error
DoCmd.SetWarnings True
DoCmd.RunSQL "INSERT INTO _PROVA VALUES ('i')"
jordi_ok:
Exit Sub
jordi_error:
MsgBox "Error"
GoTo jordi_ok
End Sub

Si ejecutas varias veces, como la tabla sólo tiene un campo PK, debevería
saltar la excepción, pero no es así.
Muchas gracias.

"Penta" escribió:

Hola.
Favor copia el codigo donde realizas la insercion.

Ademas copia el script de la tabla.

Atte.
Penta.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida