No doy pie con ....

28/01/2006 - 20:05 por Mario Cassanelli | Informe spam
Estoy intentando insertar/update/delete en una base de datos *.mdb, lo
unico que puedo hacer es leer cualquier tabla de la dichosa base de datos.
El error que pude recuperar es el que sigue y el codigo esta un poco mas
abajo...

UPDATE CATEGORIAS SET DESCRIPCION='NUEVO VALOR PARA CAT_ID=8' WHERE CAT_ID=8

DESCRIPTION [Microsoft][Controlador ODBC Microsoft Access] La operación debe
usar una consulta actualizable.

ERROR.SOURCE Error de Microsoft VBScript en tiempo de ejecución

CONNECTION STRING Provider=MSDASQL.1;Data Source=pablo;Extended
Properties="DSN=pablo;DBQ=C:\DOCUMENTS AND
SETTINGS\MCASSAN\PABLO\INTRANET\catalogo.mdb;DriverId%;FIL=MS
Access;MaxBufferSize 48;PageTimeout=5;"

ERROR NUMBER 438

la verdad que estoy ya un poco confundido, no entiendo que puede ser...!!!,
permisos, versiones, no lo entiendo...

CODIGO:
<%
OPTION EXPLICIT
DIM CSQL
DIM adoDBASES
DIM rsTABLES

DIM vchRAZONSOCIAL
DIM vchAPELLIDOS
DIM vchNOMBRES
DIM vchDOMICILIO
DIM intCP
DIM vchTEL
DIM vchOBSERV
DIM intNRODOC
DIM vchCIUDAD
DIM intPCIA
DIM vchEMAIL
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>INSERT CLIENTES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>

BODY {
scrollbar-face-color: #000000;
scrollbar-arrow-color: #B5AECE;
scrollbar-track-color: #010345;
scrollbar-shadow-color: #010493;
scrollbar-highlight-color: #000000;
scrollbar-3dlight-color: #B5AECE;
scrollbar-darkshadow-Color: #1218FD;
}
</style>
</head>

<body >
<%

vchRAZONSOCIAL=request.form("txtRAZONSOCIAL")
vchAPELLIDOS=request.form("txtAPELLIDOS")
vchNOMBRES=REQUEST.FORM("txtNOMBRES")
vchDOMICILIO= REQUEST.FORM("txtDOMICILIO")
intCP=REQUEST.FORM("txtCP")
vchTEL=REQUEST.FORM("txtTEL")
intNRODOC=REQUEST.FORM("txtNDOC")
vchCIUDAD=REQUEST.FORM("txtCIUDAD")
intPCIA= REQUEST.FORM("txtPCIA")
vchEMAIL=REQUEST.FORM("txtEMAIL")

response.write vchEMAIL & "<BR><BR>"

vchOBSERV=TRIM(request.form("txtINFO"))


CSQL ="INSERT INTO CLIENTES (RAZON_SOCIAL, APELLIDOS, NOMBRES, DOMICILIO,
CIUDAD, PROVINCIA,"
CSQL = CSQL & " COD_POSTAL, TELEFONO, FAX, MOVIL, NRO_DOC, EMAIL,
OBSERVACIONES)"
CSQL= CSQL & " VALUES ( " & CHR(39) & vchRAZONSOCIAL & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchAPELLIDOS & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchNOMBRES & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchDOMICILIO & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchCIUDAD & CHR(39) & ", "
CSQL = CSQL & intPCIA & ","
CSQL = CSQL & CHR(39) & intCP & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchTEL & CHR(39) & ", "
csql = csql & CHR(39) & "fax" & CHR(39) & ","
CSQL = CSQL & CHR(39) & "movil" & CHR(39) & ","
CSQL = CSQL & CHR(39) & intNRODOC & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchEMAIL & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchOBSERV & CHR(39) & ")"


'-->>>INSERTAR DATOS A LA TABLA CLIENTES

set adoDBASES=Server.CreateObject("ADODB.Connection")
'adoDBASES.ConnectionString = "DSN=pablo"
adoDBASES.open "pablo"

ON ERROR RESUME NEXT
adoDBASES.execute cSQL

IF ERR THEN
RESPONSE.Write(CSQL) & "<BR>" & "<BR>"
RESPONSE.WRITE LEN(CSQL) & "<BR>" & "<BR>"
response.write "DESCRIPTION " & err.description & "<BR>" & "<BR>"
response.write "NATIVE ERROR " & err.NATIVEERROR & "<BR>" & "<BR>"
response.write "ERROR.SOURCE " & err.SOURCE & "<BR>" & "<BR>"
response.write "CONNECTION STRING " & adodbases.connectionstring & "<BR>"
& "<BR>"
response.write "ERROR NUMBER " & err.number & "<BR>" & "<BR>"

END IF

adoDbases.close
SET adoDbases=NOTHING
response.write "SE CERRO EL ARCHIVO" & "<BR>"
response.write request.form("txtRAZONSOCIAL") & "<BR>"
response.write request.form("txtAPELLIDOS") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtNOMBRES") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtDOMICILIO") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtCIUDAD") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtPCIA") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtCP") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtTEL") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtNDOC") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtEMAIL") & "<BR>"
reSponse.write request.form("txtINFO")
%>
</body>
</html>




Saludos
Mario Cassanelli
Mar del Plata
Argentina
 

Leer las respuestas

#1 Dani Castillo
28/01/2006 - 20:30 | Informe spam
hola Mario, pues tiene toda la pinta de ser tema de permisos

Al tratarse de una mdb debes tener cuidado con los permisos del archivo mdb
y de la carpeta donde reside, recuerda que el asp no se ejecuta como
administrador de la máquina por lo tanto debes darle permisos al usuario de
IIS para modificación y creación de archivos (y bueno lectura etc) en la
carpeta donde reside la mdb

el usuario lo puedes consultar en el panel de admin del iis (servicios de
internet information server, normalmente en el menú de herramientas
administrativas, busca el sitio web que quieres comprobar, boton derecho,
propiedades, pestaña seguridad de directorios y en control de autenticacion
y acceso anonimo boton de modificar, se abre una ventana con el usuario que
"ejecuta" el proceso asp, normalmente es IUSR_nombredetupc)

con ese dato ve a la carpeta ("fisicamente" quiero decir desde mipc...)
boton derecho en ella y dale permisos, dependiendo de tu sistema operativo
(w2k, xp, nt...) pero maso menos sera en seguridad, agregar el usuario del
iis, y darle control total (al menos para probar)


"Mario Cassanelli" escribió en el mensaje
news:
Estoy intentando insertar/update/delete en una base de datos *.mdb, lo
unico que puedo hacer es leer cualquier tabla de la dichosa base de datos.
El error que pude recuperar es el que sigue y el codigo esta un poco mas
abajo...

UPDATE CATEGORIAS SET DESCRIPCION='NUEVO VALOR PARA CAT_ID=8' WHERE
CAT_ID=8

DESCRIPTION [Microsoft][Controlador ODBC Microsoft Access] La operación
debe
usar una consulta actualizable.

ERROR.SOURCE Error de Microsoft VBScript en tiempo de ejecución

CONNECTION STRING Provider=MSDASQL.1;Data Source=pablo;Extended
Properties="DSN=pablo;DBQ=C:\DOCUMENTS AND
SETTINGS\MCASSAN\PABLO\INTRANET\catalogo.mdb;DriverId%;FIL=MS
Access;MaxBufferSize 48;PageTimeout=5;"

ERROR NUMBER 438

la verdad que estoy ya un poco confundido, no entiendo que puede
ser...!!!,
permisos, versiones, no lo entiendo...

CODIGO:
<%
OPTION EXPLICIT
DIM CSQL
DIM adoDBASES
DIM rsTABLES

DIM vchRAZONSOCIAL
DIM vchAPELLIDOS
DIM vchNOMBRES
DIM vchDOMICILIO
DIM intCP
DIM vchTEL
DIM vchOBSERV
DIM intNRODOC
DIM vchCIUDAD
DIM intPCIA
DIM vchEMAIL
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>INSERT CLIENTES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>

BODY {
scrollbar-face-color: #000000;
scrollbar-arrow-color: #B5AECE;
scrollbar-track-color: #010345;
scrollbar-shadow-color: #010493;
scrollbar-highlight-color: #000000;
scrollbar-3dlight-color: #B5AECE;
scrollbar-darkshadow-Color: #1218FD;
}
</style>
</head>

<body >
<%

vchRAZONSOCIAL=request.form("txtRAZONSOCIAL")
vchAPELLIDOS=request.form("txtAPELLIDOS")
vchNOMBRES=REQUEST.FORM("txtNOMBRES")
vchDOMICILIO= REQUEST.FORM("txtDOMICILIO")
intCP=REQUEST.FORM("txtCP")
vchTEL=REQUEST.FORM("txtTEL")
intNRODOC=REQUEST.FORM("txtNDOC")
vchCIUDAD=REQUEST.FORM("txtCIUDAD")
intPCIA= REQUEST.FORM("txtPCIA")
vchEMAIL=REQUEST.FORM("txtEMAIL")

response.write vchEMAIL & "<BR><BR>"

vchOBSERV=TRIM(request.form("txtINFO"))


CSQL ="INSERT INTO CLIENTES (RAZON_SOCIAL, APELLIDOS, NOMBRES, DOMICILIO,
CIUDAD, PROVINCIA,"
CSQL = CSQL & " COD_POSTAL, TELEFONO, FAX, MOVIL, NRO_DOC, EMAIL,
OBSERVACIONES)"
CSQL= CSQL & " VALUES ( " & CHR(39) & vchRAZONSOCIAL & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchAPELLIDOS & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchNOMBRES & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchDOMICILIO & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchCIUDAD & CHR(39) & ", "
CSQL = CSQL & intPCIA & ","
CSQL = CSQL & CHR(39) & intCP & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchTEL & CHR(39) & ", "
csql = csql & CHR(39) & "fax" & CHR(39) & ","
CSQL = CSQL & CHR(39) & "movil" & CHR(39) & ","
CSQL = CSQL & CHR(39) & intNRODOC & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchEMAIL & CHR(39) & ", "
CSQL = CSQL & CHR(39) & vchOBSERV & CHR(39) & ")"


'-->>>INSERTAR DATOS A LA TABLA CLIENTES

set adoDBASES=Server.CreateObject("ADODB.Connection")
'adoDBASES.ConnectionString = "DSN=pablo"
adoDBASES.open "pablo"

ON ERROR RESUME NEXT
adoDBASES.execute cSQL

IF ERR THEN
RESPONSE.Write(CSQL) & "<BR>" & "<BR>"
RESPONSE.WRITE LEN(CSQL) & "<BR>" & "<BR>"
response.write "DESCRIPTION " & err.description & "<BR>" & "<BR>"
response.write "NATIVE ERROR " & err.NATIVEERROR & "<BR>" & "<BR>"
response.write "ERROR.SOURCE " & err.SOURCE & "<BR>" & "<BR>"
response.write "CONNECTION STRING " & adodbases.connectionstring & "<BR>"
& "<BR>"
response.write "ERROR NUMBER " & err.number & "<BR>" & "<BR>"

END IF

adoDbases.close
SET adoDbases=NOTHING
response.write "SE CERRO EL ARCHIVO" & "<BR>"
response.write request.form("txtRAZONSOCIAL") & "<BR>"
response.write request.form("txtAPELLIDOS") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtNOMBRES") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtDOMICILIO") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtCIUDAD") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtPCIA") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtCP") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtTEL") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtNDOC") & "<BR>"
RESPONSE.WRITE REQUEST.FORM("txtEMAIL") & "<BR>"
reSponse.write request.form("txtINFO")
%>
</body>
</html>




Saludos
Mario Cassanelli
Mar del Plata
Argentina




Preguntas similares