• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Problema con ASP

    Programado Fijo Cerrado Movido
    Software
    4
    13
    2.0k
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • PibeP
      Pibe
      Última edición por

      Hace un par de semanas hice una web en ASP con acceso a una base de datos sencilla. Todo iva muy bien. En la web habían formularios de inserción de registros y de consulta de registros. Pero luego decidí(erroneamente) instalar el Windows NET y ay no funcionaba nada. Volví a instalar el Win2k con el que me habia ido todo tan bien pero sigue sin funcionar. Pensando que podría ser la web, hice una sóla página nueva de inserción de registro y no funciona, no se inserta nada, da este error en el explorer:

      Tipo de error:
      Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
      [Microsoft][Controlador ODBC Microsoft Access] No se pudo usar '(desconocido)'; el archivo ya está en uso.
      /TMPr1fzrbhs5n.asp, line 76

      No entiendo porque sale el dichoso error diciendo que la base de datos está en uso. Utilizo IIS, Access, Win2K y Dreamweaver MX.

      Os incluyo el vínculo a la página de inserción de registro: link

      Salu2

      1 Respuesta Última respuesta Responder Citar 0
      • P
        pakohuelva
        Última edición por

        Seguramente no tenga nada que ver pero, ¿has instalado el ultimo framework?.

        1 Respuesta Última respuesta Responder Citar 0
        • geezup_2000G
          geezup_2000
          Última edición por

          Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
          [Microsoft][Controlador ODBC Microsoft Access] La operación debe usar una consulta actualizable.

          Y eso no es que la BD esté en uso… revisa ese SQL.

          Salu2...

          1 Respuesta Última respuesta Responder Citar 0
          • geezup_2000G
            geezup_2000
            Última edición por

            1 Respuesta Última respuesta Responder Citar 0
            • PibeP
              Pibe
              Última edición por

              El error de "necesita una consulta actualizable" tb me lo daba con la otra web, al intentar insertar un registro nuevo en la base de datos. Las páginas las hago en modo visual, no edito el código directamente, puesto que no tengo ni idea de programación.

              No es el framework, ya que nunca lo he instalado. Hay algo que hago mal y no tengo ni idea de que es. La conexión a la base de datos la hago desde el Dreamweaver, creando una DSN del sistema y nada más. Es algo muy sencillo que no me funciona, 😕 .

              1 Respuesta Última respuesta Responder Citar 0
              • geezup_2000G
                geezup_2000
                Última edición por

                si pones el código que hace la inserción desde asp, podría mirarlo pero así sin verlo…

                salu2...

                1 Respuesta Última respuesta Responder Citar 0
                • PibeP
                  Pibe
                  Última edición por

                  He aqui el codigo dela página que vinculé antes. Ahi viene la conexión a la base de datos. Lo he sacado del dreamweaver.

                  <%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>

                  <%
                  // *** Edit Operations: declare variables

                  // set the form action variable
                  var MM_editAction = Request.ServerVariables("SCRIPT_NAME");
                  if (Request.QueryString) {
                  MM_editAction += "?" + Request.QueryString;
                  }

                  // boolean to abort record edit
                  var MM_abortEdit = false;

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

                  if (String(Request("MM_insert")) == "form1") {

                  var MM_editConnection = MM_baseDSN_STRING;
                  var MM_editTable = "Miembros";
                  var MM_editRedirectUrl = "";
                  var MM_fieldsStr = "namenew|value|hotmailnew|value";
                  var MM_columnsStr = "Nombre|',none,''|Hotmail|',none,''";

                  // create the MM_fields and MM_columns arrays
                  var MM_fields = MM_fieldsStr.split("|");
                  var MM_columns = MM_columnsStr.split("|");

                  // set the form values
                  for (var i=0; i+1 < MM_fields.length; i+=2) {
                  MM_fields[i+1] = String(Request.Form(MM_fields_));
                  }

                  // append the query string to the redirect URL
                  if (MM_editRedirectUrl && Request.QueryString && Request.QueryString.Count > 0) {
                  MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + Request.QueryString;
                  }
                  }
                  %>
                  <%
                  // *** Insert Record: construct a sql insert statement and execute it

                  if (String(Request("MM_insert")) != "undefined") {

                  // create the sql insert statement
                  var MM_tableValues = "", MM_dbValues = "";
                  for (var i=0; i+1 < MM_fields.length; i+=2) {
                  var formVal = MM_fields[i+1];
                  var MM_typesArray = MM_columns[i+1].split(",");
                  var delim = (MM_typesArray[0] != "none") ? MM_typesArray[0] : "";
                  var altVal = (MM_typesArray[1] != "none") ? MM_typesArray[1] : "";
                  var emptyVal = (MM_typesArray[2] != "none") ? MM_typesArray[2] : "";
                  if (formVal == "" || formVal == "undefined") {
                  formVal = emptyVal;
                  } else {
                  if (altVal != "") {
                  formVal = altVal;
                  } else if (delim == "'") { // escape quotes
                  formVal = "'" + formVal.replace(/'/g,"''") + "'";
                  } else {
                  formVal = delim + formVal + delim;
                  }
                  }
                  MM_tableValues += ((i != 0) ? "," : "") + MM_columns_;
                  MM_dbValues += ((i != 0) ? "," : "") + formVal;
                  }
                  MM_editQuery = "insert into " + MM_editTable + " (" + MM_tableValues + ") values (" + MM_dbValues + ")";

                  if (!MM_abortEdit) {
                  // execute the insert
                  var 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) {
                  Response.Redirect(MM_editRedirectUrl);
                  }
                  }

                  }
                  %>

                  <title>Documento sin título</title>

                  __

                  1 Respuesta Última respuesta Responder Citar 0
                  • P
                    pakohuelva
                    Última edición por

                    Lo del framework te lo decia porque aunque no lo tengas instalado si tienes el .Net ya te lo instala y podrias necesitar actualizarlo, pero creo que no eso.

                    Comentas que lo haces con el dreamwaver e imagino que funcionara en tu equipo. A mi me ocurria algo parecido y el problema estaba precisamente en la conexion con la base de datos, me funcionaba en local pero no en la web y era porque tenia conectado especificamente a base de datos con mi equipo y debia hacerlo de forma mas general.

                    Ya se que no me he explicado bien, lo busco y ya te lo cuento mejor.

                    1 Respuesta Última respuesta Responder Citar 0
                    • geezup_2000G
                      geezup_2000
                      Última edición por

                      odio ese código generado así por las bunas… donde esté editar "a pelo"... que se quite todo eso... hmm... en principio parece que todo está correcto... sería interesante ver el baseDSN.asp (creo que es a lo que tu te refieres pako)... puedes tener el DSN mal, y que desde fuera no se vea... tienes un fichero llamado global.asa en el root del tu web ? Todo el tema de conexiones a la BD, etc suele meterse ahí.

                      Salu2...

                      1 Respuesta Última respuesta Responder Citar 0
                      • PibeP
                        Pibe
                        Última edición por

                        Ya he vuelto. Siento no haber contestado antes pero tuve una fuga con la RL… :nono: . Gracias a dios, dejando secar la placa base ya funciona 😮 . Si hay un archivo global.asa. He conseguido reducir el problema a un único mensaje de error:

                        Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
                        [Microsoft][Controlador ODBC Microsoft Access] La operación debe usar una consulta actualizable.

                        Geezup, es el error que has puesto varios post más arriba. ¿Cómo se solucina?. Estoy tirandome de los pelos porque no se cómo conseguí hacerlo funcionar en su día y ahora no hay manera, 😕 .

                        Gracias por todas las respuestas.

                        1 Respuesta Última respuesta Responder Citar 0
                        • geezup_2000G
                          geezup_2000
                          Última edición por

                          hasta este fin de semana no voy a estar disponible, lo siento, tengo que prepararme un examen…. a ver si puedes postear el contenido del baseDSN.asp y del global.asa... también mira a ver si buscando el error "La operación debe usar una consulta actualizable" en el google encuentras algo... que seguro que sí... pero yo al código que has posteado, no le veo nada "raro" aparte de que lo genere el DW y no me mole, pero por lo demás creo que está correcto...

                          ánimo tío... este finde volveré a hechar un vistazo al post, y si no lo tienes solucionado me pongo con ello un poco más seriamente.

                          Salu2...

                          1 Respuesta Última respuesta Responder Citar 0
                          • psgonzaP
                            psgonza
                            Última edición por

                            yo lo primero que haria seria hacer un response.write (MM_editQuery) para ver que es lo que esta intentando hacer. Porque con ese codigo del DW no hay manera…

                            Haz el response.write y comenta la linea MM_editCmd.Execute();

                            Coje lo que te de el response y pegalo en una consulta del access. Asi veras si funciona la SQL.

                            1 Respuesta Última respuesta Responder Citar 0
                            • PibeP
                              Pibe
                              Última edición por

                              Lo conseguí!!!!! Aleluya!!!! Dios existe!!!!. La solución la tenía justo delante. Pa que –--- imprimo el manual de DW si luego no lo miro!!!:muerto: . En una página de este manual viene como título : "Solución de problemas de conexiones de bases de datos".

                              Hay especifica los dos famosos problemas:

                              • La base de datos está ya en uso...
                              • Debe usar una consulta actualizable.

                              ¿Solución?

                              Dar permisos de lectura y escritura al usuario "IUSR_nombre_del_equipo" a la carpeta que contenga la base de datos. Tan sencillo. Yo no tenía a ese usuario en los permisos, por eso no funcionaba!!!.

                              Para agregar a este ---- de usuario hay que dar en la pestaña "seguridad" dentro de las propiedades de la carpeta que contenga la base de datos.

                              Esto sólo ocurre en particiones NTFS, no en FAT.

                              Gracias a todos por vuestras respuestas!!!

                              1 Respuesta Última respuesta Responder Citar 0
                              • 1 / 1
                              • First post
                                Last post

                              Foreros conectados [Conectados hoy]

                              1 usuarios activos (0 miembros e 1 invitados).
                              febesin, pAtO,

                              Estadísticas de Hardlimit

                              Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
                              Somos un total de 34.8k miembros registrados.
                              seaofink ha sido nuestro último fichaje.