Таблица базы данных не создается, а вставки работает Cordova - PullRequest
0 голосов
/ 05 октября 2018

Я создаю приложение Cordova с Visual Studio, которая требует операций с базой данных.Проблема, с которой я сталкиваюсь, заключается в том, что мой сценарий не создает таблицы базы данных, создается моя база данных, но не таблицы, в результате чего мои операторы INSERT не выполняются.Когда я запускаю adb pull для моей базы данных, он возвращает ноль байтов без таблиц или данных, созданных при открытии в моем браузере базы данных.У меня есть внешний js-скрипт, который обрабатывает функциональность моей базы данных "dbhandler.js", которая является ссылкой в ​​моем "Index.html".Буду признателен за вашу помощь, я не уверен, что мне не хватает.У меня также установлен SQlite.

Index.js

(function () {
"use strict";
document.addEventListener( 'deviceready', onDeviceReady.bind( this ), false );
function onDeviceReady() {
    // Handle the Cordova pause and resume events
    document.addEventListener( 'pause', onPause.bind( this ), false );
    document.addEventListener('resume', onResume.bind(this), false);

    // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
    var parentElement = document.getElementById('deviceready');
    var listeningElement = parentElement.querySelector('.listening');
    var receivedElement = parentElement.querySelector('.received');
    listeningElement.setAttribute('style', 'display:none;');
    receivedElement.setAttribute('style', 'display:block;');

   $(document).on('pageshow', '#stocktaking', function () {
    var tbl = "<table cellspacing='0' cellspacing='0' class='table table-condensed table-striped' id='stocktakingtbl1'>" +
        "<thead>" +
        "<tr>" +
        "<th>Vessel</th>" +
        "<th>Ullage(INS)</th>" +
        "<th>Vol. One</th>" +
        "<th>Vol. Two</th>" +
        "<th>Brix</th>" +
        "<th>Tonnes Brix</th>" +
        "<th>Purity</th>" +
        "<th>Tonnes Brix</th>" +
        "<th>Tonnes Pol</th>" +
        "</tr>" +
        "</thead>" +
        "<tbody" +
        "<tr>" +
        "<td >CLARIFIER</td>" +  // CLARIFIER R1
        "<td><input type='number' id='data'></td>" +
        "<td><input type='number' id='data'></td>" +
        "<td><input type='number' id='data'></td>" +
        "<td><input type='number' id='data'></td>" +
        "<td><input type='number' id='data'></td>" +
        "<td><input type='number' id='data'></td>" +
        "<td><input type='number' id='data'></td>" +
        "<td><input type='number' id='data'></td>" +
        "</tr>" +
        "<tr>" +
        "<td>EVAPORATOR</td>" + // EVAPORATOR R1
        "<td><input type='number'></td>" +
        "<td><input type='number'></td>" +
        "<td><input type='number'></td>" +
        "<td><input type='number'></td>" +
        "<td><input type='number'></td>" +
        "<td><input type='number'></td>" +
        "<td><input type='number'></td>" +
        "<td><input type='number'></td>" +
        "</tr>" +
        "</tbody" +
        "</table>";
      $("#stocktakingtabdiv1").append(tbl);
        var array = [[],[]];
        $("#stocktakingtbl1 > tbody > tr").each(function (index) {
            array[index] = [];
            $('td:not(:first-child)', this).each(function (index2,element) {
                var value = $(this).find("input[type=number]").val();
                array[index][index2] = value;
            });                
        });
        for (var i = 0; i < array.length; i++) {
            StockTakingInsert(array[i][0], array[i][1], array[i][2], array[i][3], array[i][4], array[i][5], array[i][6], array[i][7]);
        }
});
} )();

DBHandler.js

var _db = window.sqlitePlugin.openDatabase({ name: 'FIS.db', location: 'default', androidDatabaseImplementation: 2 });
function CreateDbTables() {
_db.transaction(function (tx) {
    //tx.executeSql("DROP TABLE IF EXISTS StockTaking1", errorHandler);
    tx.executeSql("CREATE TABLE IF NOT EXISTS [StockTaking1] ([Id] integer PRIMARY KEY AUTOINCREMENT NOT NULL, [Ullage] integer, [Volume] integer, [VolumeInM] integer, [Brix] integer, [TonnesBrix] integer, [Purity] integer, [TonnesBrixInM] integer, [TonnesPol] integer)", [],
        function (tx, result) {
            alert("Table created successfully");
        },
        function (error) {
            alert("Error occurred while creating the table.");
        });
});
}

function StockTakingInsert(ullage, vol, volm, brix, tbrix, purity, tbrixm, tpols) {
_db.transaction(function (tx) {
    var executeQuery = "INSERT INTO StockTaking1 (Ullage,Volume,VolumeInM,Brix,TonnesBrix,Purity,TonnesBrixInM,TonnesPol) VALUES (?,?,?,?,?,?,?,?)";
    tx.executeSql(executeQuery, [ullage, vol, volm, brix, tbrix, purity, tbrixm, tpols]
        , function (tx, result) {
            alert('Inserted');
        },
        function (error) {
            alert('Error occurred');
        });
});
}

function errorHandler(transaction, error) {
alert('Oops. Error was ' + error.message + ' (Code ' + error.code + ')');
return false;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...