Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASP Clásico (http://www.forosdelweb.com/f15/)
-   -   error: El objeto o proveedor no puede ejecutar la operación requerida al añadir regis (http://www.forosdelweb.com/f15/error-objeto-proveedor-no-puede-ejecutar-operacion-requerida-anadir-regis-583122/)

ciberpata 05/05/2008 12:35

error: El objeto o proveedor no puede ejecutar la operación requerida al añadir regis
 
Hola:
Tengo un formulario que lista las noticias con el formato siguiente (la DB es Access):

registro1 posicion (campo texto)
registro2 posicion (campo texto)

y así sucesivamente, donde el usuario tiene que escribir una posicion

Lo que quiero conseguir es que al procesar el formulario se guarde cada posición en su correspondiente registro.

He hecho lo siguiente pero me da el error:

ADODB.Recordset error '800a0cb3'
El objeto o proveedor no puede ejecutar la operación requerida.

en la linea que esta en rojo.

Código:

Set Conn= Server.CreateObject("ADODB.Connection")
Set Command= Server.CreateObject("ADODB.Command")
Conn.open "DSN=squashsantiago.com"
Command.ActiveConnection=Conn
Command.CommandType=adCmdText

insertar=True
%>

<table class="gestion" align="center" cellspacing="0" cellpadding="0">

<%if insertar then
    For each parametro in Request.Form
        posicion=Request.form("posicion")
       
        if posicion => cint(7) then
            response.write "muestra el error"
            insertar = False
        else
            Command.ActiveConnection=Conn
            Command.CommandText= "select idnoticias from noticias"
            Set RsNoticias=Command.Execute ()
           
            response.write "select * from noticias where  idnoticias= " & RsNoticias("idnoticias") & " AND idusuarios=" & clave
            Command.CommandText=  "select * from noticias where  idnoticias= " & RsNoticias("idnoticias") & " AND idusuarios=" & clave
            Set RsNoticias1=Command.Execute ()
            RsNoticias1.addnew
            response.write "idnoticias =" & idnoticias & "<br>"
            if parametro="" or parametro= null then
                parametro=0
                RsNoticias1(parametro)=Request.form(parametro)
                RsNoticias1.Update
            end if
        end if
    Next


¿en que me estoy equivocando?
Gracias

u_goldman 05/05/2008 12:39

Re: error: El objeto o proveedor no puede ejecutar la operación requerida al añadir r
 
Hola ciberpata, por lo que entiedo de tu código, en realidad lo que tu quieres hacer es un update, entonces no necesitas el método AddNew, yo te recomendaría que simplemente hagas un

Código:


strSQL = "UPDATE tabla SET campo = valore WHERE idnoticias= " & RsNoticias("idnoticias") & " AND idusuarios=" & clave

Conn.Execute(strSQL)

Asi te ahorras el recordset.

Saludos

ciberpata 05/05/2008 13:01

Re: error: El objeto o proveedor no puede ejecutar la operación requerida al añadir r
 
Lo he dejado así:
Código:

Set Conn= Server.CreateObject("ADODB.Connection")
Set Command= Server.CreateObject("ADODB.Command")
Conn.open "DSN=squashsantiago.com"
Command.ActiveConnection=Conn
Command.CommandType=adCmdText


insertar=True
if insertar then
'Añadimos el registro
    For each parametro in Request.Form
            Command.CommandText= "select idnoticias from noticias"
            Set RsNoticias=Command.Execute ()
            response.write "UPDATE noticias SET posicion = " & Request.form(parametro) & " WHERE idnoticias= " & RsNoticias("idnoticias") & " AND idusuarios=" & clave
            cadena=  "UPDATE noticias SET posicion = " & Request.form(parametro) & " WHERE idnoticias= " & RsNoticias("idnoticias") & " AND idusuarios=" & clave
            Conn.Execute(cadena)
    Next

pero al construir el update me pone todos los valores de posicion separados por comas,
o sea que la sentencia que me construye si tengo 3 registros y por tanto 3 valores para posición (1 por cada registro) es:

UPDATE noticias SET posicion = 1, 2, 3 WHERE idnoticias= 26 AND idusuarios=1

Cuando debería construir:

UPDATE noticias SET posicion = 1 WHERE idnoticias= 26 AND idusuarios=1
UPDATE noticias SET posicion = 2 WHERE idnoticias= 26 AND idusuarios=1
UPDATE noticias SET posicion = 3 WHERE idnoticias= 26 AND idusuarios=1

se supone que al ir en un for each cada valor debería ir en una sentencia por separado, entonces donde está el error?

JuanRAPerez 05/05/2008 13:34

Re: error: El objeto o proveedor no puede ejecutar la operación requerida al añadir r
 
recoge parametro
has un split
y por cada uno de los valores ejecuta el update

pero eso quiere decir que al ejecutar esas 3 sentencias tus noticias 26 de el usuario 1 sera 3

dado que es el ultimo update que hacer

es lógico???

ciberpata 05/05/2008 13:38

Re: error: El objeto o proveedor no puede ejecutar la operación requerida al añadir r
 
No lo entiendo


La zona horaria es GMT -6. Ahora son las 07:03.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.