Аватар для Niko Demin
3 / 3 / 0
Регистрация: 21.01.2015
Сообщений: 90

Пишет The database file is locked

10.05.2019, 13:04. Показов 1076. Ответов 0

Студворк — интернет-сервис помощи студентам
Проблема при выполнении функции updatePrices в классе SQL
ошибка:
SQL
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
50
51
52
53
54
55
56
57
58
59
60
61
62
java.sql.SQLException: [SQLITE_BUSY]  The DATABASE file IS locked (DATABASE IS locked)
    at org.sqlite.DB.newSQLException(DB.java:383)
    at org.sqlite.DB.newSQLException(DB.java:387)
    at org.sqlite.DB.execute(DB.java:339)
    at org.sqlite.PrepStmt.execute(PrepStmt.java:65)
    at classes.SQL.execStatement(SQL.java:77)
    at classes.SQL.updatePrices(SQL.java:104)
    at classes.MainController.lambda$search$1(MainController.java:215)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8879)
    at javafx.controls/javafx.scene.control.Button.fire(Button.java:200)
    at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)
    at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3851)
    at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1200(Scene.java:3579)
    at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1849)
    at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2588)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)
    at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)
    at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(VIEW.java:556)
    at javafx.graphics/com.sun.glass.ui.View.notifyMouse(VIEW.java:942)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    at java.base/java.lang.Thread.run(Thread.java:835)
Код класса SQL:
Java
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package classes;
 
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
 
public class SQL
{
    private Connection conn=null;
    private String path = "src/resources/SQLdb.s3db";
    private PreparedStatement prepStatmt;
 
    SQL()
    {
        try
        {
            if (conn==null)
            {
                Class.forName("org.sqlite.JDBC");
                conn = DriverManager.getConnection("jdbc:sqlite:" + path);
            }
            System.out.println("SQL: База Подключена!");
        } catch (SQLException | ClassNotFoundException e)
        {
            e.printStackTrace();
        }
    }
 
    public void execute(String query)
    {
        try
        {
            Statement statmt;
            statmt = conn.createStatement();
            statmt.execute(query);
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
 
    public ResultSet execQuery(String query)
    {
        try
        {
            Statement statmt;
            statmt = conn.createStatement();
            return statmt.executeQuery(query);
 
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        return null;
    }
 
    public void prepareStatement(String query)
    {
        try
        {
            prepStatmt = this.conn.prepareStatement(query);
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
 
    public void execStatement(String[] params)
    {
        try
        {
            for (int i = 0; i < params.length; i++)
            {
                prepStatmt.setObject(i + 1, params[i]);
            }
            prepStatmt.execute();
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
 
    public static void updatePrices() throws SQLException
    {
        SQL sql = new SQL();
        ResultSet resSet = sql.execQuery("SELECT ISBN FROM BooksTrack");
        sql.prepareStatement("INSERT OR IGNORE INTO PriceStat(ISBN, store, date, price, ref)" +
                " VALUES(?,?,?,?,?)");
        SimpleDateFormat date = new SimpleDateFormat("dd/MM/yyyy");
        List<Book> books;
 
        while(resSet.next())
        {
            String isbn = resSet.getString("ISBN");
            System.out.println(isbn);
            for (Parser p : Parser.parsers.values())
            {
                books = p.search(isbn);
                if(books.size()>0)
                {
                     String[] params = {isbn, Parser.getParserKey(p), date.format(new Date()),
                             String.valueOf(books.get(0).price), books.get(0).ref };
                     sql.execStatement(params);
                }
            }
        }
    }
}
кусок кода где вызывается функция:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
track.setOnAction(e->
                {
                    try
                    {
                        if(sql.execQuery("SELECT * FROM BooksTrack WHERE ISBN = '"+b.ISBN+"'").next())
                        {
                            sql.execute("DELETE FROM BooksTrack WHERE ISBN = '"+b.ISBN+"'");
                            //sql.execute("DELETE FROM PriceStat WHERE ISBN = "+b.ISBN);
                            track.getStyleClass().removeAll("green");
                            track.setText("Отслеживать");
                        }
                        else
                        {
                            sql.execute("INSERT INTO BooksTrack(ISBN,Name,Authors,Image) VALUES('" + b.ISBN +
                                "','"+b.name+ "','"+b.author+ "','"+b.img+"')");
                            SQL.updatePrices();
                            track.getStyleClass().add("green");
                            track.setText("Не отслеживать");
                        }
                    } catch (SQLException ex)
                    {
                        ex.printStackTrace();
                    }
                });
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.05.2019, 13:04
Ответы с готовыми решениями:

Не проходят запросы к sqlite, ошибка: The database file is locked (database is locked)
Столкнулся с проблемой, и не понимаю из-за чего... Дело в том, что к одной таблице не проходят запрос на обновление и удаление, хотя к...

Без причины ошибка The database file is locked (database is locked)
В общем, создал бота для телеграма. Использую один, естественно, статический объект Connection для доступа к БД. При необходимости...

Sqlite The database file is locked database is locked
Добрый вечер. Появилась ошибка о том, что база заблокирована. Делаю я так db_login.cs private db_controller _dbctrl = new...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2019, 13:04
Помогаю со студенческими работами здесь

SQLte ошибка при выполнении команд: Database file is locked
Когда я говорю SQLite выполнить мою команду: Public Function testik() Dim myConnection As New...

Sqlite The database file is locked - заблокирована база при правильном запросе
Доброго времени суток господа. У меня не вероятная проблема. Не так давно столкнулся с таким, что блочится база данных, но в коде была...

Как исправить: "Additional information: database is locked database is locked"?
Добрый день!!! Помогите исправить ошибку при заполнении базы данных! Имеется три формы! на одной форме идет вывод из базы данных на...

SQLite DataBase - почему подчеркивает DataBase db: пишет (DataBase cannot be resolved to a type)
Здравствуйте! помогите понять почему подчеркивает DataBase db; пишет (DataBase cannot be resolved to a type), чем это можно исправить ...

Database is locked
Здравствуйте, при попытке закрыть форму возникает &quot;database is locked&quot; в меню - выход, при нажатии на крестик все нормально, в чем дело...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru