Problema con Sp Y rowcount

20/09/2005 - 13:41 por ernessan | Informe spam
Hola a todos t gracias por leer esto:


Tengo un sp con que ejecuto desde vb, pero en un insert me dice que
@@rowcount=1, pero luego consulto desde el programa y no me esta insertando
los registros.

Si yo ejecuto desde vb SIN sp, no hay problema pero si ejecuto desde CON
sp no me esta insertando esas filas.

No tengo transaccion


Alguna idea porque la verdad no entiendo porque me esta pasando


Mucha Gracias

Ernessan

Preguntas similare

Leer las respuestas

#6 ernessan
20/09/2005 - 18:41 | Informe spam
Hola Eleazar , critica aceptadisima con gusto.

Me podrias explicar lo del tunning? donde conseguir informacion de eso

muchas gracias

ernessan



"Eleazar" escribió en el mensaje
news:%
Hola en lo personal te recomiendo (en la linea donde insertas o actualizas
Articulos001 )
mejor uses esto:
If exists (SELECT 1 FROM Articulos001 WHERE ARTT_IdArticulo


=@lIdArticulo )
Update Articulos001
Else
Insert Articulos001
la verdad esta muy enrredado tu codigo (critica contructiva) veo que usas
cursores anidados debes hacerle tunning y tratar de evitar el uso de
cursores, lo que alcanzo a comprender es que estas registrando un traspaso
generalmente se usa una llave encabezado-detalle y con esa solo se aplica
los cambios es decir un update o insert masivo


"ernessan" <ernestoARROBAbyte-factory.com> escribió en el mensaje
news:%23q%
> Claro...
>
> Anexo el fichero
>
>
> El problema es en la linea
>
> EXEC sp_FNC_AltaUniColTraspaso001
> @lidColorTraspaso,@iContador,@sTalla,@mUniTallaCompra,@iReturn output
>
>
> Antes lo tenia directamente en el sp Principal, como me estaba mareando,
lo
> dividi en otra sp para ver si localizaba el fallo, pero nada, el
>
>
>
> ALTER PROCEDURE sp_FNC_AltaPreciosTraspaso001
> @liDTraspaso As integer,
> @iPosicionTalla As smallint,
> @sTalla As varchar(6),
> @mPrecio As money,
> @iReturn As integer output
> as
>
>
> INSERT INTO PreciosTraspaso001
> (PTRA_IdDTraspaso,PTRA_PosicionTalla,PTRA_Talla,PTRA_Precio)
>
> VALUES (
> @liDTraspaso ,@iPosicionTalla, @sTalla ,@mPrecio )
>
> set @iReturn=@@rowcount
>
>
> Muchas Gracias...
>
> Ernessan
>
>
>
> "Maxi" escribió en el mensaje
> news:OF$%
> > Hola, podrias postiar el codigo?
> >
> >
> > Salu2
> > Maxi
> >
> >
> > "ernessan" <ernestoARROBAbyte-factory.com> escribió en el mensaje
> > news:
> > > Gracias a todos:
> > >
> > > Maxi: Ya he depurado desde el analizador y me pasa lo mismo: en mi


sp
> > > tengo
> > > varias operaciones, insert, update, delete... pero con cierto insert
me
> > > dice
> > > q rowcount=1 y sigue la ejecucion normall programa, pero al


consultar
la
> > > tabla no me ha insertado las filas esas en concreto...
> > >
> > > Por eso me deja un poco loco, ademas, yo tengo una transaccion desde
vb.
> > > La
> > > he quitado, he ejecutado el sp desde el analizado añadiendo yo un
BEGIN
> > > TRAN y un COMMIT y se lo pasa por el forro de
> > >
> > > En fin, si teneis alguna sugerencia os lo agredeceria...
> > >
> > > Ernessan
> > >
> > >
> > > "Meir" escribió en el mensaje
> > > news:
> > >> Ernessan
> > >> @@rowcount te da el numero de registros afectados en cualquier
> operacion,
> > > no
> > >> necesariamente tiene que ser un insert, hay alguna otra operacion


que
> > >> ejecutes en tu SP ademas del insert?
> > >>
> > >> "ernessan" <ernestoARROBAbyte-factory.com> wrote in message
> > >> news:
> > >> > Hola a todos t gracias por leer esto:
> > >> >
> > >> >
> > >> > Tengo un sp con que ejecuto desde vb, pero en un insert me dice


que
> > >> > @@rowcount=1, pero luego consulto desde el programa y no me esta
> > >> > insertando
> > >> > los registros.
> > >> >
> > >> > Si yo ejecuto desde vb SIN sp, no hay problema pero si ejecuto
desde
> > > CON
> > >> > sp no me esta insertando esas filas.
> > >> >
> > >> > No tengo transaccion
> > >> >
> > >> >
> > >> > Alguna idea porque la verdad no entiendo porque me esta pasando
> > >> >
> > >> >
> > >> > Mucha Gracias
> > >> >
> > >> > Ernessan
> > >> >
> > >> >
> > >> >
> > >>
> > >>
> > >
> > >
> >
> >
>
>
>


Respuesta Responder a este mensaje
#7 Eleazar
22/09/2005 - 02:52 | Informe spam
hola mas que nada es un concepto, como decir afinar o mejorar un proceso
(tunning) entre mas rapido sea aun query y este bien estructurado es mejor,
claro que con la experiencia y el conocimiento de nuevos tips mejorara tu
programacion.
En este foro hay muchos expertos que han publicado sus articulos y son de
gran apoyo, en pocas palabras no hay mas que seguir investigando

por ejemplo
-con el PROFILER puedes monitoriar el query que se esta ejecutando cuanto
tarda, quien lo ejecta etc.
-evitar el uso de cursores porque sql esta diseñado para procesar datos por
bloques
-tener bien definidos los indices estos ayudan a la consulta
-saber comprender los iconos del execution plan cuando lo activas (despues
del result set)
-cuando y para que usar los trigger
-cuando crear tus funciones
-inicializar un nivel de aislamiento apropiado
-cuando usar tablas temporales y definir sus indices
etc.
son solo algunos, espero ayude



"ernessan" <ernestoARROBAbyte-factory.com> escribió en el mensaje
news:%
Hola Eleazar , critica aceptadisima con gusto.

Me podrias explicar lo del tunning? donde conseguir informacion de eso

muchas gracias

ernessan



"Eleazar" escribió en el mensaje
news:%
> Hola en lo personal te recomiendo (en la linea donde insertas o


actualizas
> Articulos001 )
> mejor uses esto:
> If exists (SELECT 1 FROM Articulos001 WHERE ARTT_IdArticulo
=@lIdArticulo )
> Update Articulos001
> Else
> Insert Articulos001
> la verdad esta muy enrredado tu codigo (critica contructiva) veo que


usas
> cursores anidados debes hacerle tunning y tratar de evitar el uso de
> cursores, lo que alcanzo a comprender es que estas registrando un


traspaso
> generalmente se usa una llave encabezado-detalle y con esa solo se


aplica
> los cambios es decir un update o insert masivo
>
>
> "ernessan" <ernestoARROBAbyte-factory.com> escribió en el mensaje
> news:%23q%
> > Claro...
> >
> > Anexo el fichero
> >
> >
> > El problema es en la linea
> >
> > EXEC sp_FNC_AltaUniColTraspaso001
> > @lidColorTraspaso,@iContador,@sTalla,@mUniTallaCompra,@iReturn output
> >
> >
> > Antes lo tenia directamente en el sp Principal, como me estaba


mareando,
> lo
> > dividi en otra sp para ver si localizaba el fallo, pero nada, el
> >
> >
> >
> > ALTER PROCEDURE sp_FNC_AltaPreciosTraspaso001
> > @liDTraspaso As integer,
> > @iPosicionTalla As smallint,
> > @sTalla As varchar(6),
> > @mPrecio As money,
> > @iReturn As integer output
> > as
> >
> >
> > INSERT INTO PreciosTraspaso001
> > (PTRA_IdDTraspaso,PTRA_PosicionTalla,PTRA_Talla,PTRA_Precio)
> >
> > VALUES (
> > @liDTraspaso ,@iPosicionTalla, @sTalla ,@mPrecio )
> >
> > set @iReturn=@@rowcount
> >
> >
> > Muchas Gracias...
> >
> > Ernessan
> >
> >
> >
> > "Maxi" escribió en el mensaje
> > news:OF$%
> > > Hola, podrias postiar el codigo?
> > >
> > >
> > > Salu2
> > > Maxi
> > >
> > >
> > > "ernessan" <ernestoARROBAbyte-factory.com> escribió en el mensaje
> > > news:
> > > > Gracias a todos:
> > > >
> > > > Maxi: Ya he depurado desde el analizador y me pasa lo mismo: en


mi
sp
> > > > tengo
> > > > varias operaciones, insert, update, delete... pero con cierto


insert
> me
> > > > dice
> > > > q rowcount=1 y sigue la ejecucion normall programa, pero al
consultar
> la
> > > > tabla no me ha insertado las filas esas en concreto...
> > > >
> > > > Por eso me deja un poco loco, ademas, yo tengo una transaccion


desde
> vb.
> > > > La
> > > > he quitado, he ejecutado el sp desde el analizado añadiendo yo un
> BEGIN
> > > > TRAN y un COMMIT y se lo pasa por el forro de
> > > >
> > > > En fin, si teneis alguna sugerencia os lo agredeceria...
> > > >
> > > > Ernessan
> > > >
> > > >
> > > > "Meir" escribió en el mensaje
> > > > news:
> > > >> Ernessan
> > > >> @@rowcount te da el numero de registros afectados en cualquier
> > operacion,
> > > > no
> > > >> necesariamente tiene que ser un insert, hay alguna otra operacion
que
> > > >> ejecutes en tu SP ademas del insert?
> > > >>
> > > >> "ernessan" <ernestoARROBAbyte-factory.com> wrote in message
> > > >> news:
> > > >> > Hola a todos t gracias por leer esto:
> > > >> >
> > > >> >
> > > >> > Tengo un sp con que ejecuto desde vb, pero en un insert me dice
que
> > > >> > @@rowcount=1, pero luego consulto desde el programa y no me


esta
> > > >> > insertando
> > > >> > los registros.
> > > >> >
> > > >> > Si yo ejecuto desde vb SIN sp, no hay problema pero si ejecuto
> desde
> > > > CON
> > > >> > sp no me esta insertando esas filas.
> > > >> >
> > > >> > No tengo transaccion
> > > >> >
> > > >> >
> > > >> > Alguna idea porque la verdad no entiendo porque me esta pasando
> > > >> >
> > > >> >
> > > >> > Mucha Gracias
> > > >> >
> > > >> > Ernessan
> > > >> >
> > > >> >
> > > >> >
> > > >>
> > > >>
> > > >
> > > >
> > >
> > >
> >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida