• 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.
    • 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.