Controlar errores en Stored Procs.

01/02/2007 - 13:48 por Juan Martínez | Informe spam
Hola: Estoy atacando un SP de SQL Server 2000 desde una aplicación VB6 en el
que ejecuto sentencias como:
DECLARE @sql nvarchar(4000)
set @sql='UPDATE tabla SET campo1='ww''
EXEC sp_executesql @sql

Es algo más complicado, con parámetros de entrada que componen @sql para los
nombres de las tablas a actualizar, etc. La cuestión es que si yo hago por
ejemplo:

set @sql='UPDATE error en la sintaxis de la sentencia SQL'
EXEC sp_executesql @sql

No se como detectar el error bien desde el objecto connection de ADO o bien
desde el objeto parameter, que tiene unas 90 properties pero ninguna hace
referencia a posibles errores del SP (o eso creo)

¿Donde se queda este error? ¿Como detectarlo para habilitar su
correspondiente control?


Muchas gracias por todo, otra vez

Preguntas similare

Leer las respuestas

#11 Juan Martínez
05/02/2007 - 21:26 | Informe spam
Yap jac, pero la colección errors pertenece al objeto connection, y a mi me
vuelve vacío. mconn.errors.count=0 y le he cascado a pelo en el procedure:

set @sql='kk'
EXEC sp_executesql @sql

¿?

"jcac" wrote:

Mostrar la cita
#12 jcac
05/02/2007 - 22:25 | Informe spam
y que te devuelve el objeto err???

mira te paso un pequeño ejemplo donde no paso parametros ni nada, le puse
por ejemplo text1 y eso lo va a tratar de ejecutar como un sp y lo trata
pero me devuelve el error que no existe, en cambio le pongo sp_who2 que si
existe y no me da error.

Espero que esto te ayude.

Saludos

"Juan Martínez" escribió en el
mensaje news:
Mostrar la cita
begin 666 Coleccion Errors ADO Connection.zip
M4$L#!!0````(`.R"139W(IO -0,``/8'```)````1F]R;3$N9G)M?55-3^,P
M$+TC\1^L'MA="54M4%90Y= VV=U(W:;;!#@BQYD6B\2N' ?"7]_3CIW/=H%*
M-.F\-S//XV=S[VU"/UB1R7 T.CV9PXX+<C\?_I J(^9K3$Y/""$+NM=<"M)\
M'/P;6'Q0X2D'H7\!WSWI!A^/+B<]< E;W25?CWI0)/>]NI=7_;0'GNBG+NWB
MJDI<<O&,:9Q]("AD-(5.SZ$@"W:%#RN'FBI]MU_+G-LE6TF$?'G@(I&O.7%A
M2XM46VX[KX7,,BJ2>:$UIM2_ZME]-+Z&-6A8/;DMZ^IZTL#=`'OPQ<VHP2,:
M^R*!LH^/6[ =<0<V*\9/;QA=[J3>"$\DAZN-H-1S61+S[!;YKOR;3^5/KCY5
M/_I4_?A3]9??+WOJ[==,:\%%,T!BZYD#\&<J8YH:2KBGS/!^T#2'
M(]9"`=4T3C_"UPH28"G%AY\@)U+%,<4K]S*'I"L05$;!>,H91Y>=GJP5?Z%(
M#XNX=Œ'@[V_/6;6:'+,\($F>5DY@:N\:(0P$R9%LV2/FQ+-%@<*2IRRIAI
MBZ2YE"E0<4[*LNR2/*6D.B?V`;F)A[@*L3-5`E'%R4\920+F]9'@C;Z
M'+*"UW<E/G#</2:JW>QA50NS26LE7W@"+(.EAQ7&TS7-\U>I$F<1K*+-
M+/16L^D:5,YSC2U9H;A^([[82L?,?*^Z]R%=[.-'TQ]@<>;
MSIEC!7<6!>'4Q0@)9:$8.*&WN??=8#/X3US$,Y"%1G6C!BM4+M52,EK?&S3!
MIM4M5E."/®HAWMJMOQ9,G1?-H]JN'A#+N^0-<?^=7(#%CSCS0Q,;1'UNZP
M"1SL=>/'PPIO>[#*%UD2:MSK!$?/CDEX[$VZ.?WV+FAPK\2Y:ZA[&S;7'S6O
M_8ZS*+DVWCX].;3.K0'][7NB2?0$M5VPST:F:4S9<]N)F/]<Q*/LR9K8%X9E
M+9HW-T9C9*=].R.#RL7B;P9*WI(!AC!]N"JR&*US1E[BA5INZZ@+.5.\.JQ'
M4&6=?=.54&,=#^]>D1'>OO-W\M"<_FVV^]\9Z[I.MG>
%02P,$% ````@`[8)%-AD,#;&)````P0````P```!-4U-#0U!22BY3
M0T-MCL$*PC 01.^!_L-^0<&[$:1W*>BM2(CIUK8TV;#9B/Z]K1%/PC #`_.8
M[MPTUTJMKB_CE&"5A429'8*C?K,@3 L,TX*5ZEJF&9WLZL<MEIWY5N9D/6K9
M(+$T&RR00 X]\C]HV1_ST[161KW_/0B /LH+DO 4[C (/B7G(L_U&I]#
MATJ]`5!+`P04````" #] ,"```X`P``# ```%!R;VIE8W0Q+G9B
M<%U238_:,!"](_$?++BTE8CR`<MRR"$DI$7B2PUE*S4].,D$O(WMR'98V*K_
MO79"676C:#3SQN,W\\;[:PW^X@+]WE<H00#+P?^4?OYMV[9KCSU[I)V;"?]Y
MW3=^^#-T+7MH#RTKO?]/RTVT?4I2>94*J.>F4A6\`M%3;<KA8H:!2G6!'.
MWE.ZP73BS!["431;S$=CQYV-YH^V-YIYCN=.XZD;34)#^?B.,A#YB9RY1 6@
M6O"CP!#0-Y:RC%!4^IU-:96$55#=<D%USR4J$@5^0,WU&$%4;;[!ER
M)9%F0RN2"2RN_5[,!?6-<:Q2T'XO45BHIO8'+3;H]T).*6:%Y_H#'6TP!7^P
M$]Q<9=)?H*I#SA1<U#+R!( .6^-G+@X@?$?[A'6^;=0Z$ZEU
MNX5&R"7+!5!@ZH8E(,:NN5 QJ4 :5"=-7<O%KEU;*UR3'"2Z(MT17+10
MB158MXY(U2YH;]Z&KM_6BE#R^A\6XS,7.\U,&JI'_*#H1P.'>HH#@9<(LN:X
M9"4WX(8'%<&2L*.)YKQAA0Q/D/]J+]<-EQ5_N0-QM>.$J;<X6A[NP3<F3#D4
M\:Z=:[-8:7 )#NU%":L\_<G`;C8@>C6:J UOFP:FFFH[++
M:"\).T9^=W/J]"I G<_(O4$L!`A8+% ````@`[()%-G<BF\ U`P``
M]@<```D``````````0`@`("!`````$9O<FTQ+F9R;5!+`0(6"Q0````(`.V"
M1389# VQB0```,$````,``````````$``0``@5P#``!-4U-#0U!22BY30T-0
M2P$"%@L4````" #] ,"```X`P``# `````````!`" `@($/! ``
B4')O:F5C=#$N=F)P4$L%!@`````#``,`JP```#P&````````
`
end
#13 Juan Martínez
06/02/2007 - 16:50 | Informe spam
Hola: No debo explicarme bien. La invocación al SP es correcta y el texto:

set @sql='kk'
EXEC sp_executesql @sql

está DENTRO del propio SP. Al invocarlo desde VB no me devuelve error,
aunque en ejecución dentro del propio SP se genere, puesto que kk no es una
sentencia sql válida, ni nombre de función, ni nada

Espero haberme explicado mejor. Un saludo y disculpas por la pesadez.

"jcac" wrote:

Mostrar la cita
#14 jcac
06/02/2007 - 20:56 | Informe spam
Vamos asi es tu sp????

create procedure sp
as
declare @sql varchar(10)
set @sql = 'kk'
exec sp_executesql @sql

si lo ejecuto dentro de pequeño programita que te pase me da este error:

Error número: -2147217900
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
Microsoft OLE DB Provider for SQL Server

Ahora la funcion sp_executesql te pide parametros y valores para los
parametros.

espero estarte ayudando

"Juan Martínez" escribió en el
mensaje news:
Mostrar la cita
#15 Juan Martínez
11/02/2007 - 23:38 | Informe spam
Jolines... ya estoy algo cansado de esto. El código de debajo , te juro que
no me devuelve error alguno... puedo acceder a alguna página donde expliquen
BIEN los procedimientos almacenados?

Muchas gracias por tu ayuda, jcac.

"jcac" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida