INSERT

10/04/2006 - 20:09 por Dudoso | Informe spam
Cuando yo utilizo una función de sql de tipo INSERT, no me da nigún error y
sin embargo la base de datos no se actualiza, ¿Cómo podría solucionar esto?

Gracias de antemano

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
10/04/2006 - 20:21 | Informe spam
"Dudoso" wrote in message
news:
Cuando yo utilizo una función de sql de tipo INSERT, no me da nigún error
y
sin embargo la base de datos no se actualiza, ¿Cómo podría solucionar
esto?



Cerciórate de que efectivamente le llega al servidor lo que tú crees que
le estás enviando: Si utilizas SQL Server, arranca el SQL Profiler y crea
una traza. Lanza tu programa, y luego vete a ver la traza a ver si
efectivamente el INSERT le ha llegado al servidor. Si no le ha llegado,
revisa tu programa, porque no está funcionando como creías que debía
funcionar. Por el contrario, si la sentencia ha llegado, copiala al
portapapeles y pégala en el Query Analyzer para ejecutarla a mano, a ver si
te contesta con algún error o warning que no estaba llegando al programa. Si
funciona y no da errores, ejecuta un SELECT desde el Query Analyzer a ver
qué es lo que se ha grabado.
Por cierto, si todo está aparentemente correcto, comprueba también que la
tabla no tenga un trigger INSTEAD OF que se te esté "tragando" las
inserciones.
Respuesta Responder a este mensaje
#2 Dudoso
11/04/2006 - 11:30 | Informe spam
Perdona las molestias pero no se ni que es un trigger instead of ni como se
quita, por lo demás, todo me va bien

"Alberto Poblacion" wrote:

"Dudoso" wrote in message
news:
> Cuando yo utilizo una función de sql de tipo INSERT, no me da nigún error
> y
> sin embargo la base de datos no se actualiza, ¿Cómo podría solucionar
> esto?

Cerciórate de que efectivamente le llega al servidor lo que tú crees que
le estás enviando: Si utilizas SQL Server, arranca el SQL Profiler y crea
una traza. Lanza tu programa, y luego vete a ver la traza a ver si
efectivamente el INSERT le ha llegado al servidor. Si no le ha llegado,
revisa tu programa, porque no está funcionando como creías que debía
funcionar. Por el contrario, si la sentencia ha llegado, copiala al
portapapeles y pégala en el Query Analyzer para ejecutarla a mano, a ver si
te contesta con algún error o warning que no estaba llegando al programa. Si
funciona y no da errores, ejecuta un SELECT desde el Query Analyzer a ver
qué es lo que se ha grabado.
Por cierto, si todo está aparentemente correcto, comprueba también que la
tabla no tenga un trigger INSTEAD OF que se te esté "tragando" las
inserciones.



Respuesta Responder a este mensaje
#3 Alberto Poblacion
11/04/2006 - 12:30 | Informe spam
"Dudoso" wrote in message
news:
Perdona las molestias pero no se ni que es un trigger instead of ni como
se
quita, por lo demás, todo me va bien



Lo de que "todo va bien", ¿significa que si escribes el INSERT en el
Query Analyzer entonces sí que inserta, o significa que falla exactamente de
la misma forma que cuando el mismo INSERT lo envías desde el programa? Si la
respuesta es la primera, hay que revisar el programa y si es la segunda hay
que revisar los triggers.

Los triggers se pueden ver desde el Enterprise Manager (si es Sql Server
2000) o desde el Sql Server Management Studio (si es Sql Server 2005). Si
despliegas en el árbol la base de datos que estás usando, y luego la tabla
en la que haces el Insert, encontrarás un apartado que dice "Triggers" (en
el 2005, en el 2000 hay que pinchar con el botón derecho en la tabla y
seleccionar "all tasks"). Ahi mismo puedes ver si la tabla tiene algún
trigger, y también puedes quitarlo.
Respuesta Responder a este mensaje
#4 Dudoso
11/04/2006 - 12:51 | Informe spam
De nuevo, perdona las molestias
Según lo que me has contestado tengo que revisar el programa, puesto que en
el query analyzer me funciona el INSERT, pero el problema es que no se por
donde empezar a revisarlo ni donde puede estar el error(No me salta ninguna
excepción cuando utilizo INSERT desde el programa)

Gracias de antemano

"Alberto Poblacion" wrote:

"Dudoso" wrote in message
news:
> Perdona las molestias pero no se ni que es un trigger instead of ni como
> se
> quita, por lo demás, todo me va bien

Lo de que "todo va bien", ¿significa que si escribes el INSERT en el
Query Analyzer entonces sí que inserta, o significa que falla exactamente de
la misma forma que cuando el mismo INSERT lo envías desde el programa? Si la
respuesta es la primera, hay que revisar el programa y si es la segunda hay
que revisar los triggers.

Los triggers se pueden ver desde el Enterprise Manager (si es Sql Server
2000) o desde el Sql Server Management Studio (si es Sql Server 2005). Si
despliegas en el árbol la base de datos que estás usando, y luego la tabla
en la que haces el Insert, encontrarás un apartado que dice "Triggers" (en
el 2005, en el 2000 hay que pinchar con el botón derecho en la tabla y
seleccionar "all tasks"). Ahi mismo puedes ver si la tabla tiene algún
trigger, y también puedes quitarlo.



Respuesta Responder a este mensaje
#5 Alberto Poblacion
11/04/2006 - 14:08 | Informe spam
"Dudoso" wrote in message
news:
Según lo que me has contestado tengo que revisar el programa, puesto que
en
el query analyzer me funciona el INSERT, pero el problema es que no se por
donde empezar a revisarlo ni donde puede estar el error(No me salta
ninguna
excepción cuando utilizo INSERT desde el programa)



Pero, ¿Se llega a enviar o no se llega a enviar? ¿Has mirado con el Sql
Profiler a ver si el Insert llega al servidor? Y si le llega, ¿es igual que
el que escribiste en el programa o tiene alguna diferencia?
Y si no le llega, hay que revisar el envío. ¿Qué sentencia utilizas para
enviar el Inset, un ExecuteNonQuery()? ¿Has puesto un punto de ruptura en el
ExecuteNonQuery a ver si el programa pasa por él? ¿Qué valor te llega en el
rowsaffected (el resultado del ExecuteNonQuery)?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida