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

ASP. Formulario de insercion de datos

Estas en el tema de ASP. Formulario de insercion de datos en el foro de ASP Clásico en Foros del Web. Hola a todos! Tengo mi pagina WEB colgada en un servidor que soporta datos ASP y las bases de datos las coloca en una carpeta ...

  #1 (permalink)  
Antiguo 10/12/2004, 08:04
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
ASP. Formulario de insercion de datos

Hola a todos!
Tengo mi pagina WEB colgada en un servidor que soporta datos ASP y las bases de datos las coloca en una carpeta y paginas en otra.
La conexion se establese mediante DSN.
El problema que tengo es que no puedo actualizar las bases de datos usando los formularios de insercion de registros (trabajo con Dreamweaver). Sin embargo con el servidor de prueba local (localhost) si funcciona.
__________________
Gracias
  #2 (permalink)  
Antiguo 10/12/2004, 08:55
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
revisa la ruta (path) en el string de coneccion a la base
  #3 (permalink)  
Antiguo 10/12/2004, 09:02
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por flacoluis
revisa la ruta (path) en el string de coneccion a la base
Ya la he revisado.
El caso es que los datos se ve, pero despues de enviar el formulario para actualizar la base de datos sale - Error interno del servidor
__________________
Gracias
  #4 (permalink)  
Antiguo 10/12/2004, 09:09
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
te tiene que dar un codigo de error

como sabes que los datos se ven?
  #5 (permalink)  
Antiguo 10/12/2004, 09:18
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por flacoluis
como sabes que los datos se ven?
Los datos (tabla) y formulario estan en la misma pagina. Cuando abro la pagina se ven los datos pero a la hora de actualizarlos mediante formulario sale error y los datos no se actualizan.
__________________
Gracias
  #6 (permalink)  
Antiguo 10/12/2004, 09:27
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
revisa las instrucciones que hacen la actualizacion
si podes pone el codigo para verlo

pregunto de nuevo: no te da un codigo de error?
  #7 (permalink)  
Antiguo 10/12/2004, 09:56
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por flacoluis
revisa las instrucciones que hacen la actualizacion
si podes pone el codigo para verlo

pregunto de nuevo: no te da un codigo de error?
El codigo:

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form1") Then

MM_editConnection = ConexionF
MM_editTable = "foro"
MM_editRedirectUrl = "forum.asp"
MM_fieldsStr = "nombre|value|mail|value|asunto|value|mensajeMostr ar|value|colabInter|value"
MM_columnsStr = "nombre|',none,''|mail|',none,''|asunto|',none,''| mensajeMostrar|',none,''|colabInter|none,1,0"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>

Me sale HTTP 500 - error interno del servidor
__________________
Gracias
  #8 (permalink)  
Antiguo 10/12/2004, 10:24
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
a simple vista no veo nada raro

vos decis que en localhost anda bien ?

la maquina es la misma o son dos maquinas distintas (una para desarrollo y otra donde publicas)?
  #9 (permalink)  
Antiguo 10/12/2004, 10:28
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por flacoluis
a simple vista no veo nada raro

vos decis que en localhost anda bien ?

la maquina es la misma o son dos maquinas distintas (una para desarrollo y otra donde publicas)?
Localhost esta en mi ordenador y funciona bien.

Problemas tengo con el servidor externo (en Internet) donde esta colgada mi pagina.
__________________
Gracias
  #10 (permalink)  
Antiguo 10/12/2004, 10:30
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
puede ser un problema de configuracion del servidor

fijate en:
http://support.microsoft.com/default...b;en-us;311766
http://support.microsoft.com/default...b;en-us;842329
  #11 (permalink)  
Antiguo 10/12/2004, 10:46
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Anushka, supongo que estás usando IE para probar las páginas. Antes de cualquier otra cosa, hacé lo siguiente:

Vas al menú "herramientas", luego al sub-menú "Configuracion de Intenet" y allí dentro a la ficha "Opciones avanzadas" y DESMARCÁS la opción que dice "Mostrar errores descriptivos del los mensajes HTTP" (o similar, es que estoy con firefox y no recuerdo bien xD). Luego aceptás todo lo que haya que aceptar.

Ahora probá de nuevo la página de inserción de datos y te va a mostrar un error más descriptivo (con su número, descripción y línea en donde ocurre)

Igualmente, tratándose de un código generado automáticamente por DreamWeaver y funcionando en el servidor de desarrollo y no en el de producción, lo más probable es que no tengas permiso de escritura en la carpeta y/o en el archivo de la base de datos.
__________________
...___...
  #12 (permalink)  
Antiguo 13/12/2004, 12:27
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por Al Zuwaga
lo más probable es que no tengas permiso de escritura en la carpeta y/o en el archivo de la base de datos.
Pienso lo mismo, voy aberiguarlo con mi hosting.
__________________
Gracias
  #13 (permalink)  
Antiguo 14/12/2004, 04:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Bueno. Los de hosting dicen que el archivo no nesesita ningun tipo de permiso y que el problema esta en base de datos. Que les da error:
"Error al evaluar la restricción CHECK en la regla de validación".
En la base de datos tengo un campo tipo "Fecha/Hora" al que le pongo Valor predeterminado "Ahora()" parece ser que el error da ese campo a la hora de ejecutar la funcion de insercion de datos.
¿Alguien sabe como puedo resolverlo?
__________________
Gracias
  #14 (permalink)  
Antiguo 14/12/2004, 04:32
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
fijate si puede ser la diferencia en la forma en que vos guardas la fecha y la forma en que la base de datos espera la fecha

por ahi vos mandas dia/mes/año y la base la espera de la forma m/d/a o a/m/d

fijate por ese lado
  #15 (permalink)  
Antiguo 16/12/2004, 04:28
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Exacto, ya el problema resuelto.
Pero ahora tengo otro. En mi base de datos tengo dos tablas y el tipo de relacion entre ellas es "Uno a varios". Resulta, que nesesito crear otro formulario de insercion de registros para la tabla "varios" y no se como conseguir enviar el parametro "uno" para insertar "varios" registros para el registro único de la tabla "uno". Suena galimatía...no se si me he explicado bien.
__________________
Gracias
  #16 (permalink)  
Antiguo 16/12/2004, 06:44
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
la idea basica seria lo siguiente
primero con un formulario1 pido los datos de la base UNO y llamo a una pagina donde grabo los datos de la BD y en una variable UNO guardo el dato uno que luego paso al formulario2 que pide los datos de la tabla varios

para pasar el dato UNO al formulario2 lo haces con redirect a la direccion del formulario2 con "http://loquesea/formulario2?valor=" & uno

y a eso lo lees en el formulario2 con el método request.querystring("valor")

espero hayas entendido la idea
  #17 (permalink)  
Antiguo 16/12/2004, 11:13
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Muchas gracias por contestar.
¿Como puedo mostrar el numero de registros de base de datos "VARIOS" en la pagina con tabla que muestra los datos "UNO"?
__________________
Gracias
  #18 (permalink)  
Antiguo 17/12/2004, 04:51
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Cita:
Iniciado por Anushka
Muchas gracias por contestar.
¿Como puedo mostrar el numero de registros de base de datos "VARIOS" en la pagina con tabla que muestra los datos "UNO"?
perdoname pero no entendi lo que queres hacer.
  #19 (permalink)  
Antiguo 17/12/2004, 05:28
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por Anushka
¿Como puedo mostrar el numero de registros de base de datos "VARIOS" en la pagina con tabla que muestra los datos "UNO"?
Quiero que se muestre el "numero de respuestas". En mi caso tabla "UNO" es como aqui "foro ASP" donde para cada tema se muestra el numero de "VARIAS" respuestas.
__________________
Gracias
  #20 (permalink)  
Antiguo 17/12/2004, 06:01
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
la tabla uno y la tabla varios
estan en la misma base de datos
o son dos bases de datos distintas?
  #21 (permalink)  
Antiguo 17/12/2004, 06:11
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por flacoluis
la tabla uno y la tabla varios
estan en la misma base de datos
o son dos bases de datos distintas?
Son dos tablas dentro de la misma base de datos. Tienen relacion del tipo UNO a VARIOS.
Se trata de mostrar el numero de registros VARIOS para cada registro del UNO.
__________________
Gracias
  #22 (permalink)  
Antiguo 17/12/2004, 06:19
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
proba con:

select * from uno, varios where campo.varios = campo.uno

campo. es el nombre de campo de la relacion

espero te sirva
  #23 (permalink)  
Antiguo 17/12/2004, 07:49
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Me sirve para crear el juego de registros, pero como puedo mostrar el numero total de VARIAS respuestas para cada registro del UNO?
Es igual que en los foros:
"Este tema (UNO en mi caso) tiene 5 respuestas (VARIOS en mi caso)"
__________________
Gracias
  #24 (permalink)  
Antiguo 17/12/2004, 08:28
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
cant_registros=rs.recordcount
esto te cuenta la cantidad de registros

podes tambien poner en el select count(campo_que_queres_contar) as cuenta ....
  #25 (permalink)  
Antiguo 17/12/2004, 08:30
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
me olvidaba rs. lo tenes que cambiar por el nombre de tu recordset
  #26 (permalink)  
Antiguo 17/12/2004, 10:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por flacoluis
cant_registros=rs.recordcount
esto te cuenta la cantidad de registros
podes tambien poner en el select count(campo_que_queres_contar) as cuenta ....
Si, pero este codigo me muestra la cantidad total de registros de tabla VARIOS:
El registro 1 (tabla UNO) tiene 8 respuestas (tabla VARIOS)
El registro 2 (tabla UNO) tiene 8 respuestas (tabla VARIOS)
El registro 3 (tabla UNO) tiene 8 respuestas (tabla VARIOS)

Lo que nesesito es que me muestre:

El registro 1 (tabla UNO) tiene 5 respuestas (tabla VARIOS)
El registro 2 (tabla UNO) tiene 3 respuestas (tabla VARIOS)
El registro 3 (tabla UNO) tiene 0 respuestas (tabla VARIOS)
etc.

a cado registro de tabla UNO le corresponden varios registros de tabla VARIOS.
__________________
Gracias
  #27 (permalink)  
Antiguo 17/12/2004, 10:38
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
select count(varios.campo) as cuenta from uno, varios where varios.campo=uno.campo

reemplaza segun tus datos
espero funcione
  #28 (permalink)  
Antiguo 17/12/2004, 13:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por flacoluis
select count(varios.campo) as cuenta from uno, varios where varios.campo=uno.campo
Gracias por tus consultas. Eso si que ha funcionado, pero solo me muestra 1 campo de la tabla UNO. Quisiera que se muestren mas campos.
Por ejemplo:
El registro 1(campo1 de tabla UNO) blanco (campo2 de tabla UNO) tiene 3 (tabla VARIOS) respuestas.

El codigo:
select uno.campo1, uno.campo2 count(varios.campo) as cuenta from uno, varios where varios.campo=uno.campo1
no funciona.
Muchas gracias de todos modos
__________________
Gracias
  #29 (permalink)  
Antiguo 17/12/2004, 14:37
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
no está faltando una coma?

...uno.campo2, count(varios.campo)...
__________________
...___...
  #30 (permalink)  
Antiguo 18/12/2004, 09:54
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por Al Zuwaga
no está faltando una coma?

...uno.campo2, count(varios.campo)...
Lo probé con coma, me sale error igual :
" Ha intentado ejecutar una consulta, que no incluye la expresion especificada 'campo2' como parte de una funcion de agregado"

Tambien lo probé con el codigo:
SELECT uno.campo1, COUNT (varios.campo1) AS Cant
FROM uno INNER JOIN varios ON varios.campo1 = uno.campo1 GROUP BY uno.campo1
y funciona, pero cuando añado uno.campo2 ' me sale el mismo error
__________________
Gracias

Última edición por Anushka; 18/12/2004 a las 10:20
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 16:50.