HomeAccounting

Форк
0
88 строк · 2.1 Кб
1
/**
2
 * Class for webSQL working
3
 */
4
class WebSql {
5

6
    /**
7
     * @param dbName
8
     * @param version
9
     * @param displayName
10
     * @param estimateSize
11
     */
12
    constructor(dbName, version='1.0', displayName = '', estimateSize=20000)
13
    {
14
        this.db = openDatabase(dbName, version, displayName, estimateSize)
15
    }
16

17
    /**
18
     * @param tableName
19
     * @param columns
20
     */
21
    createTable(tableName, columns) {
22

23
        let columnsString = '';
24

25
        let countColumns = columns.length;
26

27
        let countIteration = 1;
28

29
        for (let key in columns) {
30
            if(columns[key].name != '' && columns[key].type != '') {
31

32
                columnsString += columns[key].name + ' ' + columns[key].type;
33

34
                if(columns[key].unique) {
35
                    columnsString += ' UNIQUE,';
36
                }
37
                else if(countIteration !== countColumns) {
38
                    columnsString += ', ';
39
                }
40

41
                countIteration++;
42
            }
43
            else {
44
                console.error('no required parameters');
45
            }
46
        };
47

48
        let columnsToRequest = '(' + columnsString + ')';
49

50
        this.db.transaction((tx) => {
51
            tx.executeSql("CREATE TABLE " + tableName + columnsToRequest, [], null, null)
52
        });
53
    }
54

55
    /**
56
     * @param tableName
57
     * @param columns
58
     * @param values
59
     */
60
    insertRecordToTable(tableName, columns, values) {
61

62
        let valuesCount = values.length;
63

64
        if(columns.length !== valuesCount || columns.length < 1) {
65
            throw 'Error, invalid parameters columns or values';
66
        }
67

68
        let valuesString = '';
69

70
        for (let i=1; i<=valuesCount; i++) {
71
            valuesString += '?';
72

73
            if(i != valuesCount) {
74
                valuesString += ', ';
75
            }
76
        }
77

78
        let query = 'REPLACE INTO '+tableName+' ('+columns.join(', ')+') values('+valuesString+')';
79

80
        this.db.transaction((tx) => {
81
            tx.executeSql(query, values, null, null);
82
        }, (error) => {
83
            console.error(error);
84
        });
85
    }
86
}
87

88
module.exports = WebSql;

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.