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

2 veces una pagina de modificar datos?????

Estas en el tema de 2 veces una pagina de modificar datos????? en el foro de ASP Clásico en Foros del Web. Hola amigos, tengo un problema y es el siguiente: Tengo una lista de profesores que esta registrados, la cual con un enlaces desde sus nombres, ...
  #1 (permalink)  
Antiguo 14/10/2003, 09:47
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
2 veces una pagina de modificar datos?????

Hola amigos, tengo un problema y es el siguiente:


Tengo una lista de profesores que esta registrados, la cual con un enlaces desde sus nombres, me llava a una pagina de modificacion en donde modifico los datos o campos que se requieran, esto funcionan bien con los demas profesores registrados pero con un en paricular no, ya que cuando se hace click sobre su nombre presenta 2 PAGINAS DE MODIFICACIOON DE DATOS EN VEZ DE 1, y cuando se envia la modificacion da este error:

Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis (coma) en la expresión de consulta 'Cedula=5370135, 5370135'.
/asp/actualizar.asp, línea 48


Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; brip1; .NET CLR 1.0.3705)

Página:
POST 951 bytes to /asp/actualizar.asp

Datos de POST:
formulario1=5370135&formulario2=rafael+simon+torre s+jimenes&formulario3=guacara+edo.+carabobo&formul ario4=no&formulario5=0245-5810825&formulario6=0416-6471490&formulario7=no&formulario8=lic.+contaduri

Que raro verdad, ya que con los otros profesores no da ese error, y revize los codigos y estan bien, sera que pueden ayudarme a resolver este proble.

Miguel, Venezuela
  #2 (permalink)  
Antiguo 14/10/2003, 13:36
Avatar de mebarak  
Fecha de Ingreso: julio-2001
Ubicación: México, Distrito Federal
Mensajes: 133
Antigüedad: 22 años, 11 meses
Puntos: 0
ya rebisaste los datos del usuario??, ya que a llomejor intente ingresar algún caracter especial que modifique tu sentencia sql, como puede ser una coma, punto y coma, o unas comillas??
__________________
Daniel Nava
Sistem administrator Wintel
Desarrollador web [IIS]
http://mebarak.blogspot.com
  #3 (permalink)  
Antiguo 14/10/2003, 13:55
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Gracias por contestar amigo, realicé lo que me dijiste y todo esta bien, ya que con otrops nombres dentro de la lista ejecuto modificaciones y los resultados son los esperados, que pudiera ser alguien tiene alguna idea.

FUNCIONA CON TODOS LOS PROFESORES MENOS CON UNO DE ELLOS, borre los datos dierctamente en la BD de access e introduje todo los datos de nuevos y sigue el mismo error

Ayudenme Miguel
__________________
Miguel Padrón :cool:
  #4 (permalink)  
Antiguo 14/10/2003, 15:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cómo estás enviando y recibiendo esa variable de cédula?

Saludos,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 14/10/2003, 15:16
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Amigo, revisando bien me di cuenta que el adminsitrador del centro REGISTRABA 2 VECES EL MISMO PROFESOR, esto no debería suceder ya que en el codigo yo coloque una verificación de cuando hay alguien regsitrado y lo anunciaria como tal, al principio de colocar esta pagina en la red local funcionaba a la mil maravilla, pero parece que ya no, les dejo el codigo que utilizo para registrar los profesores:

<%

'Verificamos si dentro registro el profesor existe en la BD
cedula=request.form("Cedula")
set rs=createobject("ADODB.Recordset")
sqltxt="select cedula from profesores where cedula like '%"&cedula&"%'"
'response.write (sqltxt)
rs.open sqltxt,"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Inetpub\wwwroot\asp\posturg\profesores.m db;"

if rs.eof then
'Aqui se iserta el profesor si no se encuentra en la BD
if Request.Form <> "" Then
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("profesores.mdb"))

TBL.Open "profesores" ,DB, 1, 2
TBL.AddNew
TBL("Cedula") = Request.Form("Cedula")
TBL("Nombre") = Request.Form("Nombre")
TBL("Profesion") = Request.Form("Profesion")
TBL("Categoria") = Request.Form("Categoria")
TBL("Sueldo") = Request.Form("Sueldo")
TBL("Cat-Acd-Otra-Int") = Request.Form("Cat-Acd-Otra-Int")
TBL("Sueldo-Cat") = Request.Form("Sueldo-Cat")
TBL("Otras-Int") = Request.Form("Otras-Int")
TBL("Sueldo-Otras-Int") = Request.Form("Sueldo-Otras-Int")
TBL("Ultimo-Lapso-Post-URG") = Request.Form("Ultimo-Lapso-Post-URG")
TBL("Nombre-Post") = Request.Form("Nombre-Post")
TBL("Materias") = Request.Form("Materias")
TBL("Coord-Post") = Request.Form("Coord-Post")
TBL("Direcc-Personal") = Request.Form("Direcc-Personal")
TBL("Direcc-Trabajo") = Request.Form("Direcc-Trabajo")
TBL("Telef-Habit") = Request.Form("Telef-Habit")
TBL("Telef-Celular") = Request.Form("Telef-Celular")
TBL("E-mail") = Request.Form("E-mail")
TBL("Observacion") = Request.Form("Observacion")
TBL.Update
TBL.Close

DB.Close

Set DB = Nothing
Set TBL = Nothing

Response.Write "Se a Registrado el Profesor con Exito en la Base de Datos"
end if

else
' Aqui verificamos si existe el Porfesor en la BD
a=request.form("cedula")
'response.write (a)
b=rs("Cedula")
'response.write (b)
a=b
response.write "<font color='red'>El Profesor se encuentra Registrado en la Base de Datos"
end if
%>

</CENTER>
</H1>
</B>
</BODY>
</HTML>


QUE ESTARA PASANDO, de pronto borre los datos duplicados.....


Miguel-Venezuela
  #6 (permalink)  
Antiguo 14/10/2003, 15:55
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
cambia esto if rs.eof then

por esto if rs.eof and rs.bof then

y revisa si funca


saludos
  #7 (permalink)  
Antiguo 15/10/2003, 09:04
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Amigi bakanzipp gracias por ayudarme pero no funciona que pasara, hay otra forma en donde yo puedo verificar si existe un registro dentro de la BD y si es asi que me diga YA ESTA REGISTRADO y si no existe que LO REGISTRE, es importante para el buen funcionamiento de la pagina bajo red local?????

Aydenme Miguel
__________________
Miguel Padrón :cool:
  #8 (permalink)  
Antiguo 15/10/2003, 09:53
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Algún comportamiento extraño con el uso de LIKE?

Por si acaso sácale los espacios al principio y al final, si los tuviera

cedula= trim(request.form("cedula"))
sqltxt="select cedula from profesores where cedula = '"&cedula&"'

Es el único proceso que ingresa estos datos?

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 15/10/2003, 10:03
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
ok lo intentare y les aviso


Miguel
__________________
Miguel Padrón :cool:
  #10 (permalink)  
Antiguo 15/10/2003, 10:53
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
bueno lo otro seria usar el = en vez del like..

cedula ='" & cedula& "'
  #11 (permalink)  
Antiguo 15/10/2003, 10:54
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
jejeje..sorry por el atraso...u_goldman ya te habia dado la alternativa
  #12 (permalink)  
Antiguo 16/10/2003, 06:24
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Amigos hice lo que me sugirieron pero me sigue dando error, es decir me agrega el profesor que ya esta agregado dentro de la BD
Esta cosnulta funciona:
sqltxt="select cedula from profesores where cedula = '"&cedula&"'

pero no encuentra nada, dentro de la BD y me registra al profesor y deberia decirme que esta regsitrado, le dejo el codigo que uso hasta hora, cono la sugerencias que me hn dado:

<%

'Verificamos si dentro registro el profesor existe en la BD
cedula=request.form("Cedula")
set rs=createobject("ADODB.Recordset")
sqltxt=sqltxt="select cedula from profesores where cedula = '"&cedula&"'
'response.write (sqltxt)
rs.open sqltxt,"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Inetpub\wwwroot\asp\posturg\profesores.m db;"

if rs.eof then
'Aqui se iserta el profesor si no se encuentra en la BD
if Request.Form <> "" Then
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("profesores.mdb"))

TBL.Open "profesores" ,DB, 1, 2
TBL.AddNew
TBL("Cedula") = Request.Form("Cedula")
TBL("Nombre") = Request.Form("Nombre")
TBL("Profesion") = Request.Form("Profesion")
TBL("Categoria") = Request.Form("Categoria")
TBL("Sueldo") = Request.Form("Sueldo")
TBL("Cat-Acd-Otra-Int") = Request.Form("Cat-Acd-Otra-Int")
TBL("Sueldo-Cat") = Request.Form("Sueldo-Cat")
TBL("Otras-Int") = Request.Form("Otras-Int")
TBL("Sueldo-Otras-Int") = Request.Form("Sueldo-Otras-Int")
TBL("Ultimo-Lapso-Post-URG") = Request.Form("Ultimo-Lapso-Post-URG")
TBL("Nombre-Post") = Request.Form("Nombre-Post")
TBL("Materias") = Request.Form("Materias")
TBL("Coord-Post") = Request.Form("Coord-Post")
TBL("Direcc-Personal") = Request.Form("Direcc-Personal")
TBL("Direcc-Trabajo") = Request.Form("Direcc-Trabajo")
TBL("Telef-Habit") = Request.Form("Telef-Habit")
TBL("Telef-Celular") = Request.Form("Telef-Celular")
TBL("E-mail") = Request.Form("E-mail")
TBL("Observacion") = Request.Form("Observacion")
TBL.Update
TBL.Close

DB.Close

Set DB = Nothing
Set TBL = Nothing

Response.Write "Se a Registrado el Profesor con Exito en la Base de Datos"
end if

else
' Aqui verificamos si existe el Porfesor en la BD
a=request.form("cedula")
'response.write (a)
b=rs("Cedula")
'response.write (b)
a=b
response.write "<font color='red'>El Profesor se encuentra Registrado en la Base de Datos"
end if
%>


Por favor digame que mas puedo hacer, ya que tengo detenido la pagina interna de la institucion donde trabajo...


Miguel
__________________
Miguel Padrón :cool:
  #13 (permalink)  
Antiguo 17/10/2003, 09:04
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
bastante raro tu problema....si tu select encuentra al profesor no deberia meterse al ingreso ya que el recordset no viene vacio..

prueba con esto
if rs.eof and rs.bof then
'agregar profesor
else
'mensaje
end if

y esto esta mal

sqltxt=sqltxt="select cedula from profesores where cedula = '"&cedula&"'

deberia ser asi
sqltxt="select cedula from profesores where cedula = '"&cedula&"';"

y mas encima deberias dejar en tu tabla el campo cedula como primary key para que no te deje ingresar datos duplicados si por abc motivo lo hace.

saludos
  #14 (permalink)  
Antiguo 17/10/2003, 09:24
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Me da el siguiente error:

Tipo de error:
Microsoft JET Database Engine (0x80040E07)
No coinciden los tipos de datos en la expresión de criterios.
/asp/agregar4.asp, línea 25


Cambien la propiedad del campo ya que el campo cedula es numerico dentro de la bd access, ya que pienso que el que trae la url es texto y existe la divergencia pero me dice:

que falta cerrar el selet???

Ayuda
__________________
Miguel Padrón :cool:
  #15 (permalink)  
Antiguo 17/10/2003, 10:10
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
Si intentas meter directamente un Request.Form numerico en una DB no te dejará hacerlo, asi que primero pasalo por variable (no se si ya lo has hecho).
Luego haz una primary key, efectivamente.
Y dinos cual es la linea 25 >_<
__________________
Tu portal de manga y anime.
  #16 (permalink)  
Antiguo 17/10/2003, 14:37
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 6 meses
Puntos: 1
Grcais por su ayuda ya lo resollvi.................leyendo y revizando

Miguel
__________________
Miguel Padrón :cool:
  #17 (permalink)  
Antiguo 17/10/2003, 15:12
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
OK. Me alegro ver que ya funciona.
Por curiosidad ¿que era lo que estaba mal?
  #18 (permalink)  
Antiguo 18/10/2003, 12:35
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
Si el campo es numerico entonces esto esta mal:
sqltxt="select cedula from profesores where cedula = '"&cedula&"';"

debe ser sin comillas simples '

asi:
sqltxt="select cedula from profesores where cedula = "&cedula&""


pruebalo y nos avisas si funciono
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
  #19 (permalink)  
Antiguo 18/10/2003, 18:57
Avatar de RucarMaN  
Fecha de Ingreso: julio-2003
Ubicación: Caripito Edo Monagas
Mensajes: 169
Antigüedad: 20 años, 10 meses
Puntos: 1
Pana Guiate por este y ten pendiente los campos '" & texto & "' y " & numero & " en tu BD
'------------mi code
<%@ Language="VBScript" %>
<!--#include file="../conexion/conexion.asp"-->

<%
Dim grado, sec, cupo
grado = Request.Form("grado")
sec = Request.Form("sec")
cupo = Request.Form("cupo")
idsec = grado+sec
%>
<title>Agregar Sección</title>
<%
Dim Conexion,Tabla
Set Conexion = Server.CreateObject("ADODB.Connection")
Set Tabla = Server.CreateObject("ADODB.Recordset")

MiConexion = control
Conexion.Open = MiConexion

Dim Temp

Temp = "SELECT * FROM secciones WHERE idsec='" & idsec & "' AND codgrado=" & grado & " AND sec='" & sec & "'"
Tabla.Open Temp,Conexion,2,3,1

If Tabla.BOF And Tabla.EOF Then
Tabla.AddNew
Tabla("idsec") = idsec
Tabla("codgrado") = grado
Tabla("sec") = sec
Tabla("totalcupos") = cupo
Tabla.Update
%>

<p align="center">

<b><i>

<font size="5">Ingreso de datos completado<br>
</font>

<font size="2"><br>
</font></i></b><a href="agresecc.html" style="text-decoration: none">Ingresar
otra</a></p>
</p>
<%

Else
Response.Write "<body bgcolor=""#ffffff"" text=""BLACK"" background=""TRI_BG.jpg"">"
Response.Write "<center><img src=""stop.gif"">"
Response.Write "<center><br>La Siguente Sección: <b>" & idsec & "</b>, YA EXISTE"
Response.Write "<br><br><br><br><a href=""agresecc.html""><img border=""0"" src=""volver.gif""></a>"
End If

Tabla.Close
Conexion.Close
%>
__________________
Con la ayuda de todos seremos mejores...

http://www.pemoweb.com
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 19:12.