Retroceder   Foros del Web > Programación para sitios web > ASP Clásico

Respuesta
 
Herramientas Desplegado
Antiguo 05-may-2008, 12:35   #1 (permalink)
ciberpata ha deshabilitado el karma
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 543
Enviar un mensaje por Skype™ a ciberpata
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
__________________

Espero haber aprendido algo de tí.
En recuerdo a mi padre.
ciberpata está desconectado   Responder Citando
Antiguo 05-may-2008, 12:39   #2 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.265
Enviar un mensaje por MSN a u_goldman
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
__________________
¿Qué darías por vivir un sueño?
u_goldman esta en línea ahora   Responder Citando
Antiguo 05-may-2008, 13:01   #3 (permalink)
ciberpata ha deshabilitado el karma
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 543
Enviar un mensaje por Skype™ a ciberpata
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?
__________________

Espero haber aprendido algo de tí.
En recuerdo a mi padre.

Última edición por ciberpata; 05-may-2008 a las 13:29.
ciberpata está desconectado   Responder Citando
Antiguo 05-may-2008, 13:34   #4 (permalink)
Colaborador
JuanRAPerez tiene algunos puntos positivos de karma
 
Avatar de JuanRAPerez
 
Fecha de Ingreso: octubre-2003
Mensajes: 1.741
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???
__________________
JuanRa Pérez
San Salvador, El Salvador
JuanRAPerez está desconectado   Responder Citando
Antiguo 05-may-2008, 13:38   #5 (permalink)
ciberpata ha deshabilitado el karma
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 543
Enviar un mensaje por Skype™ a ciberpata
Re: error: El objeto o proveedor no puede ejecutar la operación requerida al añadir r

No lo entiendo
__________________

Espero haber aprendido algo de tí.
En recuerdo a mi padre.
ciberpata está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:57.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93