| |||
Maestro muchas gracias por ese enlace, lo he hecho tal como pone el ejemplo y me sale este error alguien sabría como se puede solucionar ? Muchas gracias Tipo de error: ADODB.Recordset (0x800A0CB3) El Recordset actual no admite actualizaciones. Puede ser una limitación del proveedor o del tipo de bloqueo seleccionado. /busqueda/recibe.asp, línea 15 y la linea 15 se corresponde con rs.addnew |
| |||
Error al agregar un registro Hola!! Quisiera saber si alguien me puede ayudar, estoy tratando de agregar un nuevo registo en la base de datos con el codigo que venia en el link de abajo http://faqsdelweb.com/index.php?num..._id=15&q_id=309 pero me marca el error HTTP 500 Error interno en el servidor |
| ||||
comax03 verifica la direccion del cursor del recordset que empleas, lee esto si crees que te puede interesar: http://www.aspfacil.com/articulos/040401.asp yaya, el error intero de HTTP500 es muy general, por lo que se agradece que digas si te falla en alguna linea, pues de lo contrario deberías colocar alguna linea de código. Saludos.
__________________ Francesc Mula Calleja Hay mucho por ver todavía... |
| |||
He leido el post que me has dado Fr@n pero no logro encontrar una solución , te pongo el código para ver si eres capaz de decirme algo, muchas gracias <% set oConn=Server.CreateObject("ADODB.Connection") set rs=Server.CreateObject("ADODB.Recordset") oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("tubase.mdb")&";" SQL="SELECT * FROM tabla" rs.Open SQL, oConn rs.addnew rs("campo1")=request("campo_formulario1") rs("campo2")=request("campo_formulario2") rs.update rs.close oConn.close %> |
| ||||
Estoy con Maestro, comprueba los campos que tienes en tu BD y te recomiendo coloques un cerrojo apropiado al recordset, po ejemplo: rs.Open SQL, oConn, 1, 3 Saludos a tod@s
__________________ Francesc Mula Calleja Hay mucho por ver todavía... |
| |||
HTTP 500.100. Error interno del servidor: error de ASP Servicios de Internet Information Server -------------------------------------------------------------------------------- Información técnica (para personal de soporte técnico) Tipo de error: Microsoft JET Database Engine (0x80040E09) No se puede actualizar. Base de datos u objeto de sólo lectura. /busqueda/recibe.asp, línea 15 He puesto el cerrojo q me recomendasteis y he puesto permisos de escritura en la carpeta y tabla, tb he comprobado q no me haya confundido en los registros de la página de envio . Y nada... mañana sigo intentando , gracias de nuevo |
| ||||
insisto que debe ser algo de lo que se ha mencionado, permisos de escritura... o cerrojo. En fín, no se porque otra cosa pudiera fallar. Saludos.
__________________ Francesc Mula Calleja Hay mucho por ver todavía... |
| ||||
has provado si con el metodo execute te devuelve el mismo error? si es asi puedes olvidarte de que sea problema del recordset o algo asi, si con metodo diferentes (aunque no tanto), devuelve el mismo error tiene que ser problema de permisos de la bd o algo relacionado... prueba esto set oConn=Server.CreateObject("ADODB.Connection") set rs=Server.CreateObject("ADODB.Recordset") oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("tubase.mdb")&";" oConn.Execute "insert into tutabla(camppo1,campo2,campo3,....) VALUES('valor_campo1','valor_campo2','valor_campo3 ',.... )" oConn.Close set oConn= nothing No se que mas te puedo decir.... suerte!!! |
| |||
Muchas gracias al fin esta solucionado, tenian razón era cuestión de permisos de escritura, por cierto con el xp un verdadero rompecabezas !!! Ahora me surge otro problema con el código arriba mencionado para que me funcione la insercción en la base de access el usuario me debe de rellenar todos los campos, como podría hacer para que si deja algun campo en blanco, me deje el hueco en el campo de la base de datos pero se pudiera enviar el formulario de igual forma ? Muchas gracias de antemano por la paciencia q tienen conmigo Por si me he explicado mal el tipo de error q me sale es este El campo 'tabla.campo13' no puede ser una cadena de longitud cero. El código es el mismo q aparece en las faq manda.htm recibe.asp Gracies |
| ||||
Que velocidad!! jejejejeje pues una manera muy facil es con el metodo execute pasando los valores de todos los campos del formulario, si dejara algun campo sin rellenar la variable no tendria na de na, asi ke mientras los campos vacios no correspondan con campos de tu tabla que no admitan nulos todo ira sobre ruedas set oConn=Server.CreateObject("ADODB.Connection") oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("tubase.mdb")&";" oConn.Execute "insert into tutabla(camppo1,campo2,campo3,....) VALUES('"&variable_campo1&"','"&variable_campo2&"' ,'"&variable_campo3&"',.... )" oConn.Close set oConn= nothing espero ke te sirva de algo ![]() agur Última edición por Subotai; 12/06/2003 a las 05:37 |
| |||
Llamandose la base de datos base.mbd y la tabla, tabla como podría acoplar el código que me dices ? Toy en los inicios del ASP comprendame pleaseeeeeeeee y muchas gracias Manda.htm <form method="post" action="recibe.asp"> <input type="text" name="campo_formulario1" size="20"> <input type="text" name="campo_formulario2" size="20"> <input type="submit" value="Enviar" name="eviar"> <input type="reset" value="Restablecer" name="reestablecer"> </form> Recibe.asp <% set oConn=Server.CreateObject("ADODB.Connection") set rs=Server.CreateObject("ADODB.Recordset") oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("tubase.mdb")&";" SQL="SELECT * FROM tabla" rs.Open SQL, oConn, 1, 3 rs.addnew rs("campo1")=request("campo_formulario1") rs("campo2")=request("campo_formulario2") rs.update rs.close oConn.close %> |
| ||||
Pues si ya te lo puse en el anterior mensaje ![]() ![]() ![]() ![]() ![]() hoy por ti mañana por mi jejeje ![]() ahi e va Manda.htm <form method="post" action="recibe.asp"> <input type="text" name="campo_formulario1" size="20"> <input type="text" name="campo_formulario2" size="20"> <input type="submit" value="Enviar" name="eviar"> <input type="reset" value="Restablecer" name="reestablecer"> </form> Recibe.asp <% Dim oConn Dim variable_campo1, variable_campo2, variable_campo3 %> <body> <% variable_campo1=Request.Form("variable_campo1") variable_campo2=Request.Form("variable_campo2") variable_campo3=Request.Form("variable_campo3") set oConn=Server.CreateObject("ADODB.Connection") oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("tubase.mdb")&";" oConn.Execute "insert into tutabla(campo1,campo2,campo3,....) VALUES('"&variable_campo1&"','"&variable_campo2&"' ,'"&variable_campo3&"',.... )" oConn.Close set oConn= nothing %> </body> incluso puedes eliminiar lo de las variables y utilizar solamente los datos que recibes por el request.Form, a gusto de cada uno ahora te tiene ke funcionar fijo si no...uyuyuyyuy... enga agur!!! |
| ||||
Cuando en la página de "RECIBE.ASP" recibes las variables, de este modo (REQUEST.FORM) y lo asignas a variables para aclararnos mejor: Dim Variable1, Variable2 variable1 = Request.Form("campo1") variable2 = Request.Form("campo2") Puedes hacer un condicional como este para verificar si contiene o no contenido, juesto después de haber grabado las variables: If Len(variable1) = 0 then variable1 = "vacio" If Len(variable2) = 0 then variable2 = "vacio" De esta manera, si el usuario no escribe nada en un campo, en la BD se grabará "vacio" para así aclararte tu. Espero que lo hayas entendido, pues sólo te faltaría meter las variables a la tabla: rs.addnew rs("campo1") = variable1 rs("campo2") = variable2 rs.update rs.close oConn.close Un saludo!
__________________ Francesc Mula Calleja Hay mucho por ver todavía... |
| ||||
Aaaaaaammmmmmmmm ahora entiendo mejor yo esto no lo habia leido!!! ![]() Cita: Entonces hazlo mejor como dice Fr@Nc3$c0El campo 'tabla.campo13' no puede ser una cadena de longitud cero. bueno comax03, no te quejaras de ayuda he..... ![]() ![]() pues sin mas preambulos hasta otra!! agur!! |
| |||
Me vais a llamar pesado pero no es mi culpar grrr <% Dim Variable1, Variable2 variable1 = Request.Form("campo1") variable2 = Request.Form("campo2") If Len(variable1) = 0 then variable1 = "vacio" If Len(variable2) = 0 then variable2 = "vacio" set oConn=Server.CreateObject("ADODB.Connection") set rs=Server.CreateObject("ADODB.Recordset") oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("tubase.mdb")&";" SQL="SELECT * FROM tabla" rs.Open SQL, oConn, 1, 3 rs.addnew rs("campo1") = variable1 rs("campo2") = variable2 rs.update rs.close oConn.close %> Este es el código q tengo ahora y si se me envía el formulario si hay campos en blanco, lo q ocurre ahora es q lo q se rellena lo pasa por alto y pone a todo vacio, diosssssss alguna solución ? y muchas gracias de veras Eyyyyyyyyyy perdonarme ya esta solucionado, estoy apijotado joer muchas gracias de veras, un saludo, y un abrazo si me permiten, GRACIASSSSSSSS |
| ||||
Puedes usar un script de JAVASCRIPT para validar si los cuadros han sido rellenados. Tambien puedes comprbar con ASP que los datos fueron ecritos y en caso contrario redirigir a la pagina del formulario. <% if request.form("campo1")="" or request.form("campo2")="" then response.redirect("manda.htm") else set oConn=Server.CreateObject("ADODB.Connection") set rs=Server.CreateObject("ADODB.Recordset") oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("tubase.mdb")&";" SQL="SELECT * FROM tabla" rs.Open SQL, oConn, 1, 3 rs.addnew rs("campo1") = variable1 rs("campo2") = variable2 rs.update rs.close oConn.close end if %> |
| |||
Me ratifico en lo q dije antes siempre con este código me pone todos los campos vacio aun cuando lo relleno, es decir en la tabla de access rellene o no el formulario en todos los campos me pone "vacio" saben q error estoy cometiendo ? muchas gracias <% Dim Variable1, Variable2 variable1 = Request.Form("campo1") variable2 = Request.Form("campo2") If Len(variable1) = 0 then variable1 = "vacio" If Len(variable2) = 0 then variable2 = "vacio" set oConn=Server.CreateObject("ADODB.Connection") set rs=Server.CreateObject("ADODB.Recordset") oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("tubase.mdb")&";" SQL="SELECT * FROM tabla" rs.Open SQL, oConn, 1, 3 rs.addnew rs("campo1") = variable1 rs("campo2") = variable2 rs.update rs.close oConn.close %> |
| ||||
Offtopic: Me encantan estos post Asi deberian acabar todos los post con una reconciliacion entre hermanos del foro ![]() ![]() ![]() ![]() (.....uy espero que no les siente mal, y si se enfadan? ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |