Helpex - Trao đổi & giúp đỡ Đăng nhập
5

Tôi đã tạo một nhà máy với một chức năng cung cấp một truy vấn cho $cordovaSQLite.execute. Tôi chắc chắn rằng truy vấn là chính xác vì tôi chạy nó ngay trong cơ sở dữ liệu bằng cách sử dụng SQLiteBrowser trong điều này hoạt động hoàn hảo. Trong bảng điều khiển, tôi có một thông báo thông báo rằng cơ sở dữ liệu đã được mở. Nhưng chức năng này không trả về dữ liệu mà tôi cần.

Tôi nhận được lỗi này: chuẩn bị tuyên bố thất bại với lỗi: 1.

Đây là mã của tôi:

factotyDatabase.js
var app = angular.module('anotei');

app.factory('factoryDatabase', function($cordovaSQLite, $ionicLoading, $q){

var currentDB = undefined;
var DATABASE_NAME = 'anotei.db';
var PATH = 'anotei.db';

return{
    init: function(){
        if(currentDB == undefined){
            currentDB = window.sqlitePlugin.openDatabase({
                name: DATABASE_NAME,
                createFromResources: PATH
            });
        }
        return currentDB;
    },

    executeQuery: function(deliveredQuery, fields){
        var defer = $q.defer();
        $ionicLoading.show();

        var resp = $cordovaSQLite.execute(currentDB, deliveredQuery, fields);
        resp.then(
            function(execution){
                defer.resolve(execution);
                $ionicLoading.hide();
            },
            function(error){
                $ionicLoading.hide();
                    defer.reject(error);
                    console.log(error);
                }
            );
            return defer.promise;
        }


    }
});

// This is the service with the function that calls the factory

var app = angular.module('anotei');

app.service('serviceSubject', function($q, factoryDatabase){

    return{
        getSubjects: function(){
        var defer = $q.defer();

        var resp = factoryDatabase.executeQuery('select * from materias');

        resp.then(
            function(resultSet){
                var listMateria = [];

                for(var i = 0; i < resultSet.rows.length; i++){
                    var materia = {};

                    materia.id_materia = resultSet.rows.item(i).id_materia;
                    materia.nome = resultSet.rows.item(i).nome;
                    materia.max_faltas = resultSet.rows.item(i).max_faltas;
                    materia.professor = resultSet.rows.item(i).professor;
                    materia.email_prof = resultSet.rows.item(i).email_prof;
                    materia.num_faltas = resultSet.rows.item(i).num_faltas;

                    listMateria.push(materia);
                }
                defer.resolve(listMateria);
            },
            function(error){
                console.log(error);
                }
            );

            return defer.promise;
        }
    }

});
5 hữu ích 2 bình luận 1.8k xem chia sẻ
1

Tôi giải quyết vấn đề.

Tôi chỉ đang sử dụng một phiên bản cũ của $cordovaSQLite. Tôi vừa gỡ cài đặt đó và chạy lại:

Thêm plugin cho cordova https://github.com/litehelpers/Cordova-sqlite-storage.git

Sự cố đã được khắc phục. Cảm ơn!!!

1 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ javascript angularjs sqlite ionic , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading