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

Error al Ingresar un Registro a la BD

Estas en el tema de Error al Ingresar un Registro a la BD en el foro de ASP Clásico en Foros del Web. Hola amigos quisiera ver si alguien me ayuda soy nuevo en esto y no se que esta pasando, segun lo que lei y me documente ...
  #1 (permalink)  
Antiguo 23/12/2006, 18:24
Avatar de nervillweb  
Fecha de Ingreso: noviembre-2005
Mensajes: 11
Antigüedad: 19 años, 5 meses
Puntos: 0
Error al Ingresar un Registro a la BD

Hola amigos quisiera ver si alguien me ayuda soy nuevo en esto y no se que esta pasando, segun lo que lei y me documente la forma para ingresar un registro a una base de datos es como lo hice pero aun asi me da un error quisiera alguien me ayudara y me dijera cual es el error.

Los campos que utilizo en la bd y el tipo son los siguientes:
Titulodelcaso=Campo texto
Descripciondelcaso=Campo Memo
FechaCreacion=Fecha
HoraCreacion=Hora
Departamento=texto
Status=numerico
Ubicaciondelcaso=texto

Esto es todo el codigo que utilizo, la base de datos es una base de datos de access.

<%
strDSN = "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("base.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open strDSN
Set cm= Server.CreateObject("ADODB.Command")
Set cm.ActiveConnection = cn
cm.CommandText = "INSERT INTO casos (Titulodelcaso,Descripciondelcaso,FechaCreacion,Ho raCreacion,Departamento,Status,Ubicaciondelcaso) VALUES (?,?,?,?,?,?,?)"
cm.Prepared = True
cm.Parameters.Append cm.CreateParameter("Titulodelcaso",255,,255)
cm.Parameters.Append cm.CreateParameter("Descripciondelcaso",255,,255)
cm.Parameters.Append cm.CreateParameter("FechaCreacion",255,,255)
cm.Parameters.Append cm.CreateParameter("HoraCreacion",255,,255)
cm.Parameters.Append cm.CreateParameter("Departamento",255,,255)
cm.Parameters.Append cm.CreateParameter("Status",255,,255)
cm.Parameters.Append cm.CreateParameter("Ubicaciondelcaso",255,,255)

cm("Titulodelcaso") = Request.Form("Titulodelcaso")
cm("Descripciondelcaso") = Request.Form("Descripciondelcaso")
cm("FechaCreacion") = date()
cm("HoraCreacion") = time()
cm("Departamento") = Request.Form("Departamento")
cm("Status") = 1
cm("Ubicaciondelcaso") = Request.Form("Ubicaciondelcaso")

cm.Execute
%>
<span class="fuente8"><font face="Tahoma" size="2"><b>Ingreso de datos completado</b></font>
</p>
</span>
<%

cn.Close
%>

Si alguien me puede explicar que pasa que error cometi por favor, se lo agradezco.
  #2 (permalink)  
Antiguo 24/12/2006, 01:55
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Error al Ingresar un Registro a la BD

Hola que tal nervillweb, y antes que nada bienvenido a Foros del Web!
Bueno con respecto a tu problema, se me hace un poco rebuscado tu código para insertar los datos en tu BD, yo haría así:
Código:
<% 
' Declaro las variables de los datos que quiero insertar en la BD 
Dim titulo, Descripcion, Fecha, Hora, Depto, Status, Ubicacion

' Suponiendo que los datos los obtenés desde un formulario
' Le asigno los valores a insertar en la BD
Titulo = request.form("Titulo") 
Descripcion = request.form("Descripcion")
Fecha = request.form("Fecha")
Hora = request.form("Hora")
Depto = request.form("Depto")
Status = request.form("Status")
Ubicacion = request.form("Ubicacion")
' request.form() es para llamar al formulario, recordá que lo que está entre comillas debe coincidir con el nombre del campo de tu formulario

' Declaro la variable "con" para utilizar en la conexión
Dim con
' Aquí indicas la ubicación de tu BD
datos = "base.mdb"
' Creamos el objeto para conexión y abrimos la BD
Set con= Server.CreateObject("ADODB.connection")
con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data source="&datos&";" 

' Asigno a la variable sql lo que quiero hacer en la BD, en este caso insertar los datos
' Lo que está entre () después de "casos" son los nombres de los campos en la BD, fijate que sean correctos
' Lo que sigue entre () después de "VALUES" es SQL injection, se "pegan" los valores que se insertan en la BD
' Ojo con el orden que lo del primer prentesis debe corresponder a lo del segundo
sql= "INSERT INTO casos (titulo, descripcion, fecha, hora, depto, status, ubicacion) VALUES ('"&titulo&"', '"&descripcion&"', '"&fecha&"', '"&hora&"', '"&depto&"', '"&status&"', '"&ubicacion&"');"

' Le digo que inserte los datos en la BD, ejecutando "sql"
Set rs= con.execute(sql)

' Le decimos que ejecute la consulta, por ende debemos verificar si todo se realizo bien, para ello debemos 
' manejar el objeto error por si acaso ocurre alguno, los sig. se entiende como: si ocurre un error, hacer lo siguiente.

On Error Resume Next 

' Si el error es diferente a cero, es que hubo error y debemos informarlo, en caso contrario te felicito porque ya insertaste datos en la tabla, revisala !!.


If Err <> 0 Then
response.write Err
Else
Response.write "Gracias por introducir tus datos"
End If

' Cerramos los objetos y los limpiamos asignando valores de nada ( Nothing ) para liberara los recursos que ocupan.

rs.close
Set rs= Nothing
con.close
Set con= Nothing
%>
Una recomendación: sería mejor que pusieras el código dentro de sus correspondientes etiquetas, así se entiende mejor, y más gente se animará a ayudarte.
Bueno espero que te haya servido, si es así calificame!
Saludos
__________________
I'm gonna start a revolution from my bed...
  #3 (permalink)  
Antiguo 24/12/2006, 21:16
Avatar de nervillweb  
Fecha de Ingreso: noviembre-2005
Mensajes: 11
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Error al Ingresar un Registro a la BD

Gracias pana pero lo rebuscado es que estoy aprendiendo y ando probando con una cosa y otra

Ahora mi gran duda seria la siguiente:
Que diferencia existe entre usar:
con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data source="&datos&";"

y usar:
strDSN = "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("base.mdb")

Porque con le primero probe y me da error.

El error que me da es que graba todos los registros menos el que es un Area de texto un campo MEMO no lo graba, que debo hacer?

Última edición por nervillweb; 24/12/2006 a las 21:32
  #4 (permalink)  
Antiguo 26/12/2006, 20:23
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Error al Ingresar un Registro a la BD

Buenas! perdón por la demora, esque estuve un poco colgado y se me había perdido el post
Bueno con respecto a las conexiones, la primera (la que te pasé) es para conectarse sin DSN y evitarse tener que configurar los controladores ODBC.
La segunda es para conectarse mediante DSN y concontroladores ODBC.
Te recomiendo la primera porque generalmente en cualquier hosting, es raro que te permitan conectarte mediante DSN.
Saludos!
__________________
I'm gonna start a revolution from my bed...
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 23:15.