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

no se que hacer

Estas en el tema de no se que hacer en el foro de ASP Clásico en Foros del Web. hola, saben quiero ingresar datos a 3 tablas diferentes y no lo he podido hacer ya que me arroja un error, aqui les dejo mi ...
  #1 (permalink)  
Antiguo 17/09/2006, 02:42
 
Fecha de Ingreso: agosto-2006
Ubicación: chile
Mensajes: 21
Antigüedad: 17 años, 8 meses
Puntos: 0
no se que hacer

hola, saben quiero ingresar datos a 3 tablas diferentes y no lo he podido hacer ya que me arroja un error, aqui les dejo mi codigo y error haber que me dicn , gracias
<%
'Recogemos los valores del formulario
rutproveedor = Request.Form("rutproveedor")
razonsocial = Request.Form("razonsocial")
fono = Request.Form("fono")
correo=request.form ("correo")
calle=request.form ("calle")
numero=request.form ("numero")
comuna=request.form ("comuna")

dim cnn,rst
' Creamos la conexión a la base de datos sin DSN
set cnn = Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.RecordSet")
cnn.Open "DRIVER={Microsoft Access DRIVER (*.mdb)}; DBQ=" & Server.MapPath("inventario.mdb")
'Ahora creamos la sentencia SQL
(LINEA 17) sSQL="Insert Into proveedor (rut_proveedor,razon_social_proveedor,fono_proveed or,correo_electronico_proveedor) values ('" & rutproveedor & "','" & razonsocial & "','" & fono & "','" & correo & "')"
sSQL="Insert Into direccion (calle_direccion,numero_direccion) values ('" & calle & "','" & numero & "')
sSQL="Insert Into comuna (nombre_comuna) values ('" & comuna & "')
'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
%>



<%
'Cerramos el sistema de conexion
Conn.Close
%>


Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access]Error general No se puede abrir la clave 'Temporary (volatile) Jet DSN for process 0x6b4 Thread 0x988 DBC 0x12910f4 Jet' del Registro.
/respuesta_ingreso_proveedor.asp, línea 17
  #2 (permalink)  
Antiguo 17/09/2006, 12:27
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 20 años, 1 mes
Puntos: 2
Bueno, viendo el numero de error: 0x80004005 parece q es cosa de permisos.

Cita:
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Microsoft Access]Error general No se puede abrir la clave 'Temporary (volatile) Jet DSN for process 0x6b4 Thread 0x988 DBC 0x12910f4 Jet' del Registro.
/respuesta_ingreso_proveedor.asp, línea 17
A parte de eso veo otras cosas

Cita:

(LINEA 17) sSQL="Insert Into proveedor (rut_proveedor,razon_social_proveedor,fono_proveed or,correo_electronico_proveedor) values ('" & rutproveedor & "','" & razonsocial & "','" & fono & "','" & correo & "')"
sSQL="Insert Into direccion (calle_direccion,numero_direccion) values ('" & calle & "','" & numero & "')
sSQL="Insert Into comuna (nombre_comuna) values ('" & comuna & "')
'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
%>
aqui si t fijas estas sobreescribiendo lo q metes en sSQL hasta 3 veces y cuando ejecutas la consulta solo t hace la ultima ->sSQL="insert into comuna ........."
lo q tienes q hacer es despues d cada sentencia sql hacer un:
set rs=Conn.execute(sSQL)

otra cosa, la variable numero si es numerica, la segunda sSQL tiene q ser asi:

sSQL="Insert Into direccion (calle_direccion,numero_direccion) values ('" & calle & "','" & numero & "')

quita las comillas simples q rodean la variable numero.

otra cosa, cuando creas el objeto connection lo llamas cnn pero cuando quieres ejecutar la sentencia utilizas Conn en vez d cnn

Cita:
<%
'Cerramos el sistema de conexion
Conn.Close
%>
y aqui lo mismo q antes, usas conn en vez d cnn
__________________
bla, bla, bla......
  #3 (permalink)  
Antiguo 17/09/2006, 13:43
 
Fecha de Ingreso: agosto-2006
Ubicación: chile
Mensajes: 21
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta ingresa solamente a una tabla a las otras no?????

holas, acabo de corregir lo que me dijiste, ahora no me arroja ningun error , pero lo que pasa que al revisar la base de datos para ver los datos si se guardaron me encuentro con que solamente se ingresaron solamente a una sola tabla y a las otras dos no se ingreso nada
esta es la que ingresa sSQL="Insert Into proveedor (rut_proveedor,razon_social_proveedor,fono_proveed or,correo_electronico_proveedor) values ('" & rutproveedor & "','" & razonsocial & "','" & fono & "','" & correo & "')"
despues de corregir quedo asi
<%
'Recogemos los valores del formulario
rutproveedor = Request.Form("rutproveedor")
razonsocial = Request.Form("razonsocial")
fono = Request.Form("fono")
correo=request.form ("correo")
calle=request.form ("calle")
numero=request.form ("numero")
comuna=request.form ("comuna")

dim conn,rst
' Creamos la conexión a la base de datos sin DSN
set conn = Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.RecordSet")
cnn.Open "DRIVER={Microsoft Access DRIVER (*.mdb)}; DBQ=" & Server.MapPath("inventario.mdb")
'Ahora creamos la sentencia SQL
sSQL="Insert Into proveedor (rut_proveedor,razon_social_proveedor,fono_proveed or,correo_electronico_proveedor) values ('" & rutproveedor & "','" & razonsocial & "','" & fono & "','" & correo & "')"
set RS = Conn.Execute(sSQL)
sSQL="Insert Into direccion (calle_direccion,numero_direccion) values ('" & calle & "'," & numero & ")"
set RS = Conn.Execute(sSQL)
sSQL="Insert Into comuna (nombre_comuna) values ('" & comuna & "')"
'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
%>



<%
'Cerramos el sistema de conexion
Conn.Close
%>
ojala me digan el porque pasa o si tengo que arreglar algo
  #4 (permalink)  
Antiguo 17/09/2006, 14:29
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
probá así:

Código:
<%
'Recogemos los valores del formulario
rutproveedor = Request.Form("rutproveedor")
razonsocial = Request.Form("razonsocial")
fono = Request.Form("fono")
correo=request.form ("correo")
calle=request.form ("calle")
numero=request.form ("numero")
comuna=request.form ("comuna")

dim conn,rst
' Creamos la conexión a la base de datos sin DSN
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access DRIVER (*.mdb)}; DBQ=" & Server.MapPath("inventario.mdb")

sSQL="Insert Into proveedor (rut_proveedor,razon_social_proveedor,fono_proveed or,correo_electronico_proveedor) values ('" & rutproveedor & "','" & razonsocial & "','" & fono & "','" & correo & "')"
Conn.Execute(sSQL)

sSQL="Insert Into direccion (calle_direccion,numero_direccion) values ('" & calle & "'," & numero & ")"
Conn.Execute(sSQL)

sSQL="Insert Into comuna (nombre_comuna) values ('" & comuna & "')"
Conn.Execute(sSQL)

'Cerramos el sistema de conexion
Conn.Close
%>
__________________
...___...
  #5 (permalink)  
Antiguo 17/09/2006, 15:01
 
Fecha de Ingreso: agosto-2006
Ubicación: chile
Mensajes: 21
Antigüedad: 17 años, 8 meses
Puntos: 0
sigue ingresando a una sola

remplase lo que tenia con los que me dieron , y me sigueingresando solamente a ua sola tabla , en este caso seria proveedor y lo que es comuna y direccion no ingresa nada, porque????
  #6 (permalink)  
Antiguo 17/09/2006, 15:04
 
Fecha de Ingreso: agosto-2006
Ubicación: chile
Mensajes: 21
Antigüedad: 17 años, 8 meses
Puntos: 0
otra idea

o si tienen otra forma de hacerlo con los mismo datos aqui descrito , como lo podre hacer, lo intente hacer con 3 recordset y ad.new y no me pesco tampoco
  #7 (permalink)  
Antiguo 18/09/2006, 02:35
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 20 años, 1 mes
Puntos: 2
puedes probar cambiando el nombre de cada sentencia sql y el nombre de cada recordset en vez d ser todos sSQL y RS puedes llamarlos:
sSQL1, RS1
sSQL2, RS2
sSQL3, RS3

y luego nos comentas como t ha ido
__________________
bla, bla, bla......
  #8 (permalink)  
Antiguo 21/09/2006, 01:11
 
Fecha de Ingreso: agosto-2006
Ubicación: chile
Mensajes: 21
Antigüedad: 17 años, 8 meses
Puntos: 0
sigo sin obtener resultados

holas, aqui estoy deneuvo con mi problema que no he podido solucionar, he tratado de varias formas y no pasa nada , lo unico que se que ingresa solamente a una tabla , aqui les dejo mi codigo nuevamente haber si me pueden ayudar , lo que esta sin negrita funciona lo mas bien y lo ingresa a la tabla pero el resto nop
<%

Response.Buffer = true
dim cnn,rst
' Creamos la conexión a la base de datos sin DSN
set cnn = Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.RecordSet")
cnn.Open "DRIVER={Microsoft Access DRIVER (*.mdb)}; DBQ=" & Server.MapPath("inventario.mdb")
sqltext = "SELECT * FROM producto"
rst.Open sqltext,cnn,3,3
'Recogemos los datos y validamos que no haya ningun campo vacio
dim producto,cantidad,valor,factura,netofactura,totalf actura,rubro
producto = Request.Form("producto")
cantidad = Request.Form("cantidad")
valor = Request.Form("valor")
factura = Request.Form("factura")
netofactura= Request.Form("netofactura")
totalfactura= Request.Form("totalfactura")
rubro= Request.Form("rubro")

if producto = "" or cantidad ="" or valor ="" or factura ="" or netofactura="" or totalfactura="" or rubro="" then
error = "Debe completar todos los datos."
Response.Write error
Response.End

end if
'Si está todo correcto, procedemos a ingresar los datos a la base de datos
rst.AddNew
rst("nombre_producto") = producto
rst("cantidad_producto") = cantidad
rst("valor_unitario") = valor
('rst("numero_factura")=factura)pertenece a la tabla factura
('rst("neto_factura")=netofactura)
('rst("total_facura")=totalfactura)
('rst("nombre_rubro")=rubro)pertenece a una tabla rubro
rst.update
'Terminamos e imprimimos un mensaje
Response.Write " "

%>
  #9 (permalink)  
Antiguo 21/09/2006, 12:58
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 20 años, 1 mes
Puntos: 2
¿has probado lo q t he dicho un mensaje anterior? d la forma q tu lo hacias no podia funcionar tienes q cambiar los nombres de las sentencias sql y de los recordset y q no sean iguales.
__________________
bla, bla, bla......
  #10 (permalink)  
Antiguo 24/10/2006, 19:36
 
Fecha de Ingreso: agosto-2006
Ubicación: chile
Mensajes: 21
Antigüedad: 17 años, 8 meses
Puntos: 0
se resolvio

Cita:
Iniciado por DkarnDuuk Ver Mensaje
¿has probado lo q t he dicho un mensaje anterior? d la forma q tu lo hacias no podia funcionar tienes q cambiar los nombres de las sentencias sql y de los recordset y q no sean iguales.
holas disculpen por no ahber contado sobre la solucion de mi problema el cual ya resolvi, lo hise como dijo dkarnduuk y resulto gracias por su ayuda amigos....
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 15:40.