Activa las notificaciones push PhoneGap Spain

Foro

Home Forums Android Promesas,plugin sqlite y update

This topic contains 0 replies, has 1 voice, and was last updated by  NoobMan 6 meses, 1 semana .

Viendo 1 respuesta (de 1 en total)
  • Promesas,plugin sqlite y update

    Intervenciones
  • NoobMan 
    Participant

    Buenos días señores.
    El problema que no consigo solucionar de forma elegante(en parte porque no comprendo el porqué sucede)es el siguiente.
    Tengo que hacer un update de un registro y para ello utilizo varias funciones porque es un programa complejo,por ello utilizo $.Deferred(); las promesas de jqery,porque lo que recibo de una funcion lo quiero tratar de forma distinta dependiendo de la funcion que lo llame,el problema es que al incluir $.Deferred(); en la respuesta la funcion falla,en cambio si no lo pongo funciona correctamente.(esta misma tecnica la utilizo con otras consultas como insertar,crear tablas etc y funciona)
    Aqui pongo un resumen de como es el codigo, por si os ayuda a comprender mi problema,gracias por la ayuda.
    la consulta que genero es la siguiente=UPDATE residentes SET nombre = ‘Teodora4′,fecMod = ’2017-04-12 08:30:37.149′ WHERE id = ‘{01BEDC83-2C5F-4260-A346-01026673F437}’ AND fecAlta = ’2016-12-05 12:51:55.000′ AND regEstado = ‘A’;

     Code: arbitrary (select
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.
    15.
    16.
    17.
    18.
    19.
    20.
    21.
    22.
    23.
    24.
    25.
    26.
    27.
    28.
    29.
    30.
    31.
    32.
    33.
    34.
    35.
    36.
    37.
    38.
    39.
    40.
    41.
    42.
    43.
    44.
    45.
    46.
    47.
    48.
    49.

    /*en algún lugar de la aplicación*/
      update(nametable,columnas,valores,wColumnas,wValores).done((result)=>{
      if(result!=="Error"){
        /*puedo hacer cosas con el nuevo registro updatado*/
        /*Printar por pantalla el nuevo resultado,enviar en el servidor de la nuve los nuevos datos que he modificado*/
      }else{
        console.log("Error");
      }
      });
      
    /*en otro lugar de la aplicación*/  
      update(nametable,columnas,valores,wColumnas,wValores){//en esta funcion es donde tengo todos los problemas y la cual quiero solucionar de forma correcta
        /*nametable=nombre de la tabla
        columnas[] array con las columnas a cambiar
        valores[] array con los valores a añadirle
        wColumnas[] array de las columnas en el while
        wValores[] array de los valores en el while
        */
        var pr2=$.Deferred();
        var qery=qeryMaker(nametable,columnas,valores,wColumnas,wValores);
        
          qery(qery).done((result)=>{
            if(result=="Error"){
              console.log("Error update "+qery);
              pr2.resolve("Error");//quitando estos resolve de la funcion,updata correctamente,pero si lo quito ya pierdo la capacidad de saber que ha ocurrido con lo que he hecho
            }else{
              console.log("Update realizado");
              pr2.resolve(result);
            }
          });
          return pr2.promise();
      }
      qery(qery){//esta funcion no me da problema alguno, pues otras funciones la utilizan sin problemas
        /*Esta funcion está hecha para pasar directamente la query y hacer la consulta*/
      /*De esta manera uso esta funcion para insertar registros crear tablas etc y no repetir codigo*/
        var pr1=$.Deferred();
          this.myDB.transaction(function(tx) {
              tx.executeSql(qery, [], function(tx, results) {
                console.log("qery() respuesta recibida");
                console.log(results.rowsAffected);
                pr1.resolve(results);
              }, function(error) {
              console.log("Error qery(): "+qery);
              console.log(error);
              pr1.resolve("Error");
              });
          });
        return pr1.promise();
      }

    De momento la solución sucia que encuentro si esto no lo soluciono, es en cuanto update el dato hacer una consulta a la base de datos para ver si lo ha hecho.
    gracias por el tiempo dedicado en comprender mi problema y ayudarme con el.

    • This topic was modified 6 meses, 1 semana by Jose Jesus Perez Rivas Jose Jesus Perez Rivas. Reason: Debes utilizar el botón que te permite publicar código en el foro

    • This topic was modified 6 meses, 1 semana by Jose Jesus Perez Rivas Jose Jesus Perez Rivas. Reason: Debes utilizar el botón que te permite publicar código en el foro
Viendo 1 respuesta (de 1 en total)

You must be logged in to reply to this topic.