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

Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Estas en el tema de Ayuda con Guardar,Modificar,Eliminar datos de una base de datos en el foro de ASP Clásico en Foros del Web. Hola a todos. Saben que no logro hacer que mi boton guardar,modificar,eliminar haga lo que yo quiero, no se como lograr hacer q funcionen si ...
  #1 (permalink)  
Antiguo 10/03/2007, 15:41
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 17 años, 3 meses
Puntos: 0
De acuerdo Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Hola a todos.

Saben que no logro hacer que mi boton guardar,modificar,eliminar haga lo que yo quiero, no se como lograr hacer q funcionen si ustedes tienen la amabilidad se los agradeceria...

la coneccion es a sql server.
  #2 (permalink)  
Antiguo 12/03/2007, 03:57
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 20 años, 2 meses
Puntos: 2
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

¿y que es lo que quieres hacer? si no nos das mas datos no te podemos ayudar
__________________
bla, bla, bla......
  #3 (permalink)  
Antiguo 12/03/2007, 08:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 17 años, 3 meses
Puntos: 0
Pregunta Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Lo que yo quiero hacer es Guardar registros desde un formulario a mi base de datos, como tambien quiero modificar datos de mi base de datos y tambien en un formulario y lo ultimo es tratar de eliminar los registros asociados a un rut, borrar todos los campos q lo componen

yo tengo este codigo pero no me funciona nada.

<%
dim rut
dim nombre
dim clave
dim perfil
dim sucursal

rut=request.form("text1")
nombre=request.form("text2")
clave=request.form("text3")
perfil=request.form("text4")
sucursal=request.form("text5")

function Ingreso(rut,nombre,clave,perfil,sucursal)
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3

Dim cnn, rcs, SQL
set cnn=Server.CreateObject("ADODB.Connection")
set rcs=Server.CreateObject("ADODB.Recordset")
cnn.Open "driver={SQL Server};server=EFUENTES; database=Osiris; uid=sa;pwd="

rcs.CursorType=adopenkeyset
rcs.LockType = adLockOptimistic


SQL=" insert into usuarios(per_rutper,per_nombre,cep_contra,pep_codp er,GlsSucursal)values('" & rut & "', '" & nombre & "', '" & clave & "', '" & perfil & "', '" & sucursal & "');"
rcs.Open SQL,cnn

'necesito validar para q no ingrese un rut duplicado

rcs.AddNew
rcs("per_rutper")=rut
rcs("per_nombre")=nombre
rcs("cep_contra")=clave
rcs("pep_codper")=perfil
rcs("GlsSucursal")=sucursal
rcs.Update
rcs.Close
set rcs=nothing
cnn.Close
set cnn=nothing
Response.Write("Los datos fueron bien Guardados")
end function
%>
  #4 (permalink)  
Antiguo 12/03/2007, 10:18
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

El listado de los datos te lo dejo a ti XD


Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim cnn, rcs, SQL
set cnn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
cnn.Open "driver={SQL Server};server=EFUENTES; database=Osiris; uid=sa;pwd="

' Borrado / busqueda para actualizar
if request.QueryString("borrar") <> "" then
    cnn.execute("DELETE FROM usuarios WHERE rut = " & request.QueryString("borrar")
elseif request.QueryString("update") <> "" then
    set rs = cnn.execute("SELECT * FROM usuarios WHERE rut = " & request.QueryString("update")
end if

' Insercion / modificacion de registros
if request.Form("rut") <> "" then
    if request.Form("action") = "update" then
        sql = "UPDATE usuarios SET nombre = '" & request.Form("nombre") & "'"
        sql = sql & ", clave = '" & request.Form("clave") & "'"
        sql = sql & ", perfil = '" & request.Form("perfil") & "'"
        sql = sql & ", sucursal = '" & request.Form("sucursal") & "'"
        sql = sql & " WHERE rut = " & request.Form("rut") ' Actualizar
    else
        ' Comprobamos que no exista
        Dim rsd
        set rsd = Server.CreateObject("ADODB.Recordset")
        set rsd = cnn.execute("SELECT rut FROM usuarios WHERE rut = " & request.Form("rut")
        existe = not rsd.EOF
        rsd.close()
    
        if not existe then
            sql = "INSERT INTO usuarios (rut, nombre, clave, perfil, sucursal) VALUES ("
            sql = sql & "'" & request.Form("rut") & "'"    
            sql = sql & ",'" & request.Form("nombre") & "'"    
            sql = sql & ",'" & request.Form("clave") & "'"    
            sql = sql & ",'" & request.Form("perfil") & "'"    
            sql = sql & ",'" & request.Form("sucursal") & "')"    
        end if
        
    end if
end if

' Lo ideal es que controles el SQL injection
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>RUT</td>
      <td><input type="text" name="rut" value="<% if isObject(rs) then response.Write(rs.fields("rut").value %>" /></td>
    </tr>
    <tr>
      <td>Nombre</td>
      <td><input type="text" name="nombre" value="<% if  isObject(rs) then response.Write(rs.fields("nombre").value %>" /></td>
    </tr>
    <tr>
      <td>Clave</td>
      <td><input type="text" name="clave" value="<% if  isObject(rs) then response.Write(rs.fields("clave").value %>" /></td>
    </tr>
    <tr>
      <td>Perfil</td>
      <td><input type="text" name="perfil" value="<% if  isObject(rs) then response.Write(rs.fields("perfil").value %>" /></td>
    </tr>
    <tr>
      <td>Sucursal</td>
      <td><input type="text" name="sucursal" value="<% if  isObject(rs) then response.Write(rs.fields("sucursal").value %>" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2" align="center">
      <input type="hidden" name="action" value="<% if isObject(rs) response.Write("update") else response.Write("insert") %>" />      
      
      <input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>
</form>
</body>
</html>


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 12/03/2007, 12:36
 
Fecha de Ingreso: marzo-2007
Mensajes: 8
Antigüedad: 17 años, 3 meses
Puntos: 0
De acuerdo Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Gracias por las respuesta.
me gustaria saber si son variables ("borrar") ("update") ("action")
existe.....



te lo agradeceria mucho tu respuesta.


GRACIAS SALUDOS Antonio Neira.
  #6 (permalink)  
Antiguo 13/03/2007, 00:05
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

lo que te escribio tammander, de UPDATE, BORRAR, ACTION, sobre todo esta ultima

action= si es modificacion del registro que muestras
update= para actualizar
logicamente, borrar... no se para que sea

en la forma que lo describe tammander, es para envio dentro de la misma pagina.
  #7 (permalink)  
Antiguo 13/03/2007, 04:41
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Por eso te decia que los listados :D

Te explico. Imagina que haces una paginacion de los datos en un grid:

listado.asp

Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>

<%
Dim cnn, rcs, SQL
set cnn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
cnn.Open "driver={SQL Server};server=EFUENTES; database=Osiris; uid=sa;pwd="

set rs = cnn.execute("SELECT * FROM usuarios")

' Maquetamos los resultados
' No incluyo Clave por seguridad (supongo)
%>
<a href="detalle.asp">Pulse aqui para insertar</a>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>RUF</td>
    <td>Nombre</td>
    <td>Perfil</td>
    <td>Sucursal</td>
    <td>&nbsp;</td>
  </tr>

<%
while not rs.EOF
%>

  <tr>
    <td><%=rs.fields("ruf").value%></td>
    <td><%=rs.fields("nombre").value%></td>
    <td><%=rs.fields("perfil").value%></td>
    <td><%=rs.fields("sucursal").value%></td>
    <!-- FIJATE EN LO QUE PONEMOS AQUI -->
    <td>
    <a href="detalles.asp?borrar=<%=rs.fields("ruf").value%>">Borrar Registro</a><br />
    <a href="detalles.asp?update=<%=rs.fields("ruf").value%>">Modificar Registro</a><br />    
    </td>
  </tr>

<%
    rs.movenext()
wend
%>
</table>
</body>
</html>
<%
set rs = nothing
cnn.close()
set cnn = nothing
%>
Como puedes imaginar el codigo que te di ayer seria el de detalle.asp. Aqui existen procesos de un paso (borrar) o de dos pasos (modificar). Borrar es una variable GET que contiene el ruf a borrar lo cual hace nada mas llegar a detalle.asp. Update contiene el ruf del registro a modificar. Para modificar primero lo visualiza (1er. paso) pasando el ruf por GET. El usuario interacciona con los datos y pulsa el boton (submit el form) llamando a la misma página para que actualize los datos en la BD (2o. paso) esta vez a traves del método POST.

Una vez actualizada la BD (tanto para borrar, como para insertar como actualizar -Active Record- ) puedes redirigir al usuario otra vez a listado.asp si asi lo deseas.


NOTA: Si te fijas, ACTION solo se pasa por POST en el formulario y sirve solo para identificar cual es la accion a realizar: insertar o modificar.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #8 (permalink)  
Antiguo 14/03/2007, 22:49
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

estoy tratando de actualizar el campo BME pero me da el siguiente error al enviar el form

ADODB.Recordset (0x800A0CC1)
No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.
/tablero/detalles.asp, línea 52

aqui esta mi codigo

Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim cnn, rcs, SQL
set cnn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
cnn.open "circulacion", "sa", ""


' Borrado / busqueda para actualizar
if request.QueryString("update") <> "" then
    set rs = cnn.execute("SELECT * FROM costos_maxirest WHERE bme = " & request.QueryString("update"))
end if

' Insercion / modificacion de registros
if request.Form("bme") <> "" then
    if request.Form("action") = "update" then
        sql = "UPDATE costos_maxirest SET bme = '" & request.Form("bme") & "'"
		sql = sql & " WHERE fecha = " & request.Form("fecha") ' Actualizar
		' Actualizar
    else
        ' Comprobamos que no exista
        Dim rsd
        set rsd = Server.CreateObject("ADODB.Recordset")
        set rsd = cnn.execute("SELECT bme FROM costos_maxirest WHERE bme = " & request.Form("bme"))
        existe = not rsd.EOF
        rsd.close()
    
        if not existe then
            sql = "INSERT INTO costos_maxirest (bme,fecha) VALUES ("
            sql = sql & ",'" & request.Form("bme") & "'"    
            sql = sql & ",'" & request.Form("fecha") & "'"  
        end if
        
    end if
end if

' Lo ideal es que controles el SQL injection
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="detalles.asp">
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>Fecha</td>
      <td><p>
        <input type="text" name="fecha" value="<% if isObject(rs) then response.Write(rs.fields("fecha").value)%>" />
      </p></td>
    </tr>
    <tr>
      <td>bme</td>
      <td><p>
        <input type="text" name="bme" value="<% if isObject(rs) then response.Write(rs.fields("bme").value)%>" />
        </p>      </td>
    </tr>
    <tr>
    </tr>
    <tr>
      <td colspan="2" align="center">
      <input type="hidden" name="action" value="<% if isObject(rs) then response.Write("update") else response.Write("insert") %>" />      
      
      <input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>
</form>
</body>
</html>
__________________
Bye!

Última edición por Pelao; 15/03/2007 a las 00:12
  #9 (permalink)  
Antiguo 15/03/2007, 08:30
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Eso es porque un campo no existe en la Base de datos. Comprueba si todos los nombres de campos que has utilizado existen realmente en la Bd.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #10 (permalink)  
Antiguo 15/03/2007, 08:39
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

ese error ya lo arregele...ahora me dice esto al enviar el form a detalle.asp

Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A000D)
No coinciden los tipos
/tablero/detalles.asp, línea 20

el tema es que me actualiza los registros pero me modifica todos los valores BME de la tabla SQL.

aqui el codigo exacto que uso

Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim cnn, rs, SQL
set cnn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
cnn.open "circulacion", "sa", ""



' Borrado / busqueda para actualizar
if request.QueryString("borrar") <> "" then
    cnn.execute("DELETE FROM costos_maxirest WHERE bme = " & request.QueryString("borrar"))
elseif request.QueryString("update") <> "" then
    set rs = cnn.execute("SELECT * FROM costos_maxirest WHERE bme = " & request.QueryString("update"))
end if

' Insercion / modificacion de registros
if request.Form("bme") <> "" then
    if request.Form("action") = "update" then
        set sql = cnn.execute("UPDATE costos_maxirest SET bme = " & request.Form("bme")) & "'"
		sql = sql & " WHERE bme = " & request.Form("bme") ' Actualizar
    else
        ' Comprobamos que no exista
        Dim rsd
        set rsd = Server.CreateObject("ADODB.Recordset")
        set rsd = cnn.execute("SELECT bme FROM costos_maxirest WHERE bme = " & request.Form("bme"))
        existe = not rsd.EOF
        rsd.close()
    
        if not existe then
            sql = "INSERT INTO costos_maxirest (bme) VALUES ("
            sql = sql & ",'" & request.Form("bme") & "'"  
        end if
        
    end if
end if

' Lo ideal es que controles el SQL injection
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="detalles.asp">
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>Fecha</td>
      <td><p><% if isObject(rs) then response.Write(rs.fields("fecha").value)%></p></td>
    </tr>
    <tr>
      <td>bme</td>
      <td><p>
        <input type="text" name="bme" value="<% if isObject(rs) then response.Write(rs.fields("bme").value)%>" />
        </p>      </td>
    </tr>
    <tr>
    </tr>
    <tr>
      <td colspan="2" align="center">
      <input type="hidden" name="action" value="<% if isObject(rs) then response.Write("update") else response.Write("insert") %>" />      
      
      <input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>
</form>
</body>
</html>
gracias
tammander
__________________
Bye!
  #11 (permalink)  
Antiguo 15/03/2007, 09:00
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Tienes que usar al menos un campo de control en las sentencias SQL UPDATE ya que si no, no sabe donde actualizar.

UPDATE table set campo1 = 'guauguau' where campo1 = 'beeeeee'

Como puedes ver es un poco incongruente y de resultados inciertos.

Usa un campo unico que no vaya a cambiar:

UPDATE table set campo1='beeeee' where id = 12



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #12 (permalink)  
Antiguo 15/03/2007, 09:14
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

ah...
el tema es que yo tengo mi tabla SQL 2 campos

Fecha y BME
el campo que yo quiero updatear es BME de determinada fecha..en listado.asp me aparece todo bien...cuando le doy modificar dato tambien..ingreso el dato y al enviar me sale ese error.
creo q no se puede hacer. :(
__________________
Bye!
  #13 (permalink)  
Antiguo 15/03/2007, 09:45
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Puedes hacer dos cosas:

1 - La mas recomandable. Incorpora un campo IDentificador autonumerico que te sirva de control

2 - Hacer el Update en dos pasos:


A - Haz primero un SELECT con el valor antiguo

set rs = conn.execute("SELECT bme FROM tabla WHERE bme = " & bme)

b - Actualiza el registro leido:

if not rs.EOF then
rs("bme") = nuevo_bme
rs.update
end if


Este es un poco de andar por casa y, no se que resultados puede llegar a tener en determinadas circunstancias.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #14 (permalink)  
Antiguo 15/03/2007, 12:37
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

no se hacerlo
estoy al horno

este es mi form
Código:
<FORM METHOD="post" ACTION="update.asp">
<%
for i = 0 to 30
%>
  <p>
    <input name="bme<% = i %>" type="text" value="" />
  </p>
    <br />
    <%next%>
      <INPUT TYPE="hidden" value="<% = i %>" name="cantidad"> 
      <INPUT TYPE="SUBMIT" value="Insertar">
  </p>
</FORM>
y aqui proceso

Código:
<%
'Recogemos los valores del formulario
cantidad = Request.Form("cantidad")

'Instanciamos y abrimos nuestro objeto conexion 
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "circulacion", "sa", ""
set objRS = CreateObject("ADODB.Recordset")


for i = 0 to cantidad
bme_actual = request.form("bme" & i)
'Ahora creamos 30 sentencias SQL

if bme_actual<>"" or bme<>0 then
   sSQL="UPDATE costos_maxirest (bme) values ('" & bme_actual & "')"
   'y Ejecutamos la orden 30 veces
   set objRS = Conn.Execute (sSQL)
end if

next
%>

<h1><div align="center"><% = i %> registros Insertados</div></h1>
<div align="center"><a href="lectura.asp">Visualizar el contenido de la base</a></div>

<%
'Cerramos el sistema de conexion
Conn.Close
%>
__________________
Bye!
  #15 (permalink)  
Antiguo 15/03/2007, 16:53
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Ya te digo que el problema esta en el diseño de la tabla en la base de datos. Ahora veo que costos_maxirest posee el campo bme que actua de campo unico y que es ese el que tienes que actualizar.

Primero: La sentencia SQL UPDATE no tiene ese formato que pones. Es:

UPDATE tabla SET campo=valor, campo2=valor2, campoN = valorN WHERE campoclave = valorClave

Y el INSERT (insertar) es:

INSERT INTO tabla (campo1, campo2, campoN) VALUES (valor1, valor2, valorN)

Como ves UPDATE necesita al menos un campo de control (clave) para que se actualize solo un registro o un grupo de ellos. Si no lo haces asi, actualiza TODOS los registros de la tabla.

Por otro lado.

Si lo que quieres es actualizar precisamente ese campo de control, lo mejor es insertar un nuevo campo en la tabla que actue de indice primario y liberar el otro campo de esa labor. Pero como veo que lo que quieres hacer es actualizar (UPDATE) la tabla, veamos el otro metodo.

ASP permite cargar los datos de una busqueda en un objeto Recordset. Una vez almacenado en el, lo modificas. Esto suele funcionar en Bases de Datos de Microsoft (Access, MSSQL Server) porque a las tablas que no tienen indice primario, le asigna uno interno para controlar la posicion de cada registro en la tabla.

El codigo:

Donde tu pones:
Código:
if bme_actual<>"" or bme<>0 then
   sSQL="UPDATE costos_maxirest (bme) values ('" & bme_actual & "')"
   'y Ejecutamos la orden 30 veces
   set objRS = Conn.Execute (sSQL)
end if
Yo lo haria asi (y me pillo los dedos porque esto es un peligro )

Código:
if bme_actual<>"" or bme<>0 then
   set objRS = Conn.Execute ("SELECT * FROM costos_maxirest WHERE bme = '" & bme & "'")
   ' Si existe el registro
   if not objRS.EOF then
      objRS("bme") = bme_actual
      objRS.update()
   end if
   objRS.close()
end if
Mas no puedo hacer. Sigo pensando que crear una tabla temporal que incluya un indice primario autonumerico y volcar los datos de la tabla costos_maxirest es la mejor opcion.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -

Última edición por tammander; 15/03/2007 a las 17:00
  #16 (permalink)  
Antiguo 16/03/2007, 12:17
 
Fecha de Ingreso: abril-2003
Mensajes: 260
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

agrege el campo ID (es autoincrement) ...entonces para actualizar el campo BME en cada registro deberia hacer referencia al ID ?
__________________
Bye!
  #17 (permalink)  
Antiguo 19/03/2007, 03:46
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Ahora tienes mucho mas facil identificar cada registro: Puedes seguir buscando registros por bme:

"SELECT * FROM costos_maxirest WHERE bme = '" & bme_antiguo & "'"

Pero ahora se te devuelve un identificador unico para ese registro: ID que tendrá un valor unico y exclusivo de dicho registro. A la hora de realizar la actualización, puedes guardar ese valor ID en un campo oculto (hidden) que el formulario envia una vez se han realizado los cambios por el usuario. Asi, cuando la página ASP lea esos valores pasados por POST:

request.Form("ID")

Sabrá que registro hay que actualizar:

sql = "UPDATE costos_maxirest SET bme = '" & request.Form("bme") & "' WHERE ID = " & request.Form("ID")



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
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 12:46.