Foros del Web » Programando para Internet » ASP Clásico »

error al modificar la BD con asp

Estas en el tema de error al modificar la BD con asp en el foro de ASP Clásico en Foros del Web. Hola, tengo una página para modificar datos de una BD mediante ASP y utilizando formularios, pero no consigo que funcione, no encuentro el fallo y ...
  #1 (permalink)  
Antiguo 17/09/2004, 02:27
 
Fecha de Ingreso: abril-2004
Mensajes: 53
Antigüedad: 20 años, 1 mes
Puntos: 0
error al modificar la BD con asp

Hola, tengo una página para modificar datos de una BD mediante ASP y utilizando formularios, pero no consigo que funcione, no encuentro el fallo y llevo más de dos semanas intentandolo,el error que me salta es el siguiente

Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

El Idsubtitulo es un dato de tipo autonumérico.

Espero que me podais hechar una mano.Gracias de ante mano

Nota: aqui os dejo el codigo

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Servidor Escuela Universitaria de Ingenier&iacute;a T&eacute;cnica Industrial de Toledo</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<link href="administrador.css" rel="stylesheet" type="text/css">

</head>

<body bgcolor="#FF6633">

<table width="100%" border="0" cellpadding="10">

<tr align="center" valign="middle" class="titulogeneralservidor">

<td>Servidor Escuela Universitaria de Ingenier&iacute;a T&eacute;cnica Industrial

de Toledo</td>

</tr>

<tr align="center" valign="middle" bgcolor="#FF3333" class="tituloservidor">

<td> <table width="100%" border="1" cellpadding="10" bordercolor="#FF3333" bgcolor="#FF6633">

<tr bordercolor="#FF3333" bgcolor="#FF3333" class="subtituloservidor">

<td colspan="3"><a href="subtitulos.asp">Subtitulos</a></td>

</tr>

<tr bordercolor="#FF3333" bgcolor="#FF3333" class="subtituloservidor">

<td><a href="subtitulosmod.asp">Modificar</a></td>

<td ><a href="subtitulosins.asp">Insertar</a></td>

<td><a href="subtitulosbor.asp">Borrar</a></td>

</tr>

</table></td>

</tr>

<tr bgcolor="#FF3333">

<td width="25%" bordercolor="#FF6633" bgcolor="#FF5033" class="textoservidor">

<!-- #INCLUDE File="ADOVBS.inc" -->

<%IF (Request.Form <> "") THEN

Set Ob_Conn = Server.CreateObject ("ADODB.Connection")

Set Ob_RS = Server.CreateObject ("ADODB.RecordSet")

Ob_Conn.Open "BDadministrador"

Ob_RS.Open "menusubtitulos", Ob_Conn, adOpenStatic, adCmdTable

IF (Request.Form ("Clave") <> "") THEN

Filtro= "Idsubtitulo= " & Request.Form ("Clave")

Ob_RS.Filter = Filtro

FOR EACH Parametro IN Ob_RS.Fields

IF Parametro.Name= "Idsubtitulo" THEN

Ob_RS ("Idsubtitulo")= (Request.Form ("Idsubtitulo"))

ELSE

Ob_RS (Parametro.Name)= Request.Form (Parametro.Name)

END IF

NEXT

Ob_RS.Update

Response.Write "<H3> Registro modificado </H3>"

ELSE

Poner_AND= False

Filtro= ""

FOR EACH Parametro IN Request.Form

IF Request.Form (Parametro) <> "" AND Parametro <> "PAGINA" THEN

IF Poner_AND THEN

Filtro= Filtro & " AND " & Parametro & "='"

Filtro= Filtro & Request.Form (Parametro) & "'"

ELSE

Filtro= Filtro & Parametro & "='"

Filtro= Filtro & Request.Form (Parametro) & "'"

Poner_AND = True

END IF

END IF

NEXT

Filtro= LCase (Filtro)

Ob_RS.Filter = Filtro

IF Ob_RS.Eof THEN

Response.Write "<H3> No hay ningún registro con esas características </H3>"

ELSE

Response.Write "<TABLE BORDER=1> <TR>"

FOR EACH Parametro IN Ob_RS.Fields

Response.Write "<TH>" & Parametro.Name

NEXT

Response.Write "<TH> Modificar"

DO WHILE NOT Ob_RS.Eof

Response.Write "<TR> <FORM ACTION=subtitulosmod.asp METHOD=Post>"

FOR EACH Parametro IN Ob_RS.Fields

Response.Write "<TD> <INPUT NAME=" & Parametro.Name & " VALUE='" & Ob_RS (Parametro.Name) & "'>"

NEXT

Response.Write "<INPUT TYPE=Hidden NAME=Clave VALUE='" & Ob_RS ("Idsubtitulo") & "'>"

Response.Write "<TD> <INPUT TYPE=Submit VALUE=Modificar> </FORM>"

Ob_RS.MoveNext

LOOP

Response.Write "</TABLE><BR>"

END IF

END IF

Ob_RS.Close

Ob_Conn.Close %>

<% ELSE %>

<span class="tituloins">INDIQUE EL SUBT&Iacute;TULO QUE DESEA MODIFICAR

</span><BR>

<%

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "BDadministrador"

%>

<FORM METHOD="Post" ACTION="subtitulosmod.asp">

<p>NOMBRE DEL SUBT&Iacute;TULO:

<%

sSQL="Select Nombresubtitulo From menusubtitulos Order By Nombresubtitulo"

set RS = Conn.Execute(sSQL)

%>

<select name="Nombresubtitulo">

<%

Do While not RS.eof%>

<option><%=RS("Nombresubtitulo")%>

<%RS.movenext

Loop

%>

</select>

</p>

<p align="center">

<INPUT TYPE="Submit" VALUE="Enviar datos">

<INPUT TYPE="Reset" VALUE="Restablecer">

</p>

</FORM>

<% END IF %>

</td>

</tr>

</table>

</body>

</html>
  #2 (permalink)  
Antiguo 17/09/2004, 08:35
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
¿Dónde le indicas al objeto connection que tipo de BD estas utilando, login, password, ubicación, etc?
  #3 (permalink)  
Antiguo 17/09/2004, 09:09
 
Fecha de Ingreso: abril-2004
Mensajes: 53
Antigüedad: 20 años, 1 mes
Puntos: 0
error

Pues nunca he indicado el tipo de base de datos,

yo utilizo esto

Ob_Conn.Open "BDadministrador"

Ob_RS.Open "menusubtitulos", Ob_Conn, adOpenStatic, adCmdTable


creo que el fallo esta en el filtro, puede que sea porque este diciendo que Idsubtitulo es un texto en vez de un numero???? pero es que no se si hago eso, sabes tu cmo se cambiaria o donde esta el Fallo???

gracias por contestarme
  #4 (permalink)  
Antiguo 17/09/2004, 10:32
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años, 1 mes
Puntos: 4
Hola:

Tu conexión es atrevés del ODBC no?.

El poner todo el no es muy factible, pues únicamente tu lo entiendes y sabes lo valores que recibes, sin embargo, hay que empezar si funciona bien tu conexión.


Puedes listar los datos de forma normal es decir : select * from tabla ?
Los datos que envias son del mismo tipo ?
adOpenStatic, adCmdTable utilizas constantes, declaras el ADOVBS en la cabecera del programa ???
  #5 (permalink)  
Antiguo 17/09/2004, 11:40
 
Fecha de Ingreso: abril-2004
Mensajes: 53
Antigüedad: 20 años, 1 mes
Puntos: 0
error

si tengo conexion OCBC, declaro el ADOVBS en la cabecera, si funciona la conexion porque he visualizado e insertado datos.

El tipo de campo es el

Idsubtitulo:autonumerico
Los demas son de tipo texto.

Alguna idea de que ocurre????
  #6 (permalink)  
Antiguo 17/09/2004, 12:05
Avatar de Andariel  
Fecha de Ingreso: abril-2004
Ubicación: Guatemala
Mensajes: 567
Antigüedad: 20 años, 2 meses
Puntos: 5
El error que te da es por que el dato que intentas guardar, hablando de número de caracteres, es mas largo que lo que has definido en tu base de datos, chequea eso. mira que límite le has puesto a tu campo en tu base de datos.
__________________
N.B.
Los sabios son los que buscan la sabiduría...
los necios creen haberla encontrado.
Esta es la línea 5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:37.