30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
1
Другое

SQLite: не работает Update

10.09.2017, 14:02. Показов 3467. Ответов 14
Метки нет (Все метки)

Добрый день!

Возникла проблема с Update в SQLite
C базой работаю из Delphi, компоненты FireDAC

делаю так

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   FD_Query := TFDQuery.Create(nil);
 
   FDConnection.Params.Values['Database'] := ExeDir+'ALL_VK_ID.db';
   FDConnection.Params.Values['Synchronous'] := 'Normal';
   FDConnection.Params.Values['DriverID'] := 'SQLite';
   FDConnection.Params.Values['OpenMode'] := 'ReadWrite';
 
   FDConnection.Params.SaveToFile(ExeDir+'SQLITE.INI'); // для отладки, что бы прочитать с какими параметрами я работаю
 
   FD_Query.Connection := FDConnection;
   FD_Query.SQL.Clear;
 
   FD_Query.SQL.Text := 'UPDATE `VK_ID` SET `IMAGE_STATUS` = ''true''' ;
   FD_Query.ExecSQL;
запрос рабочий и работает в другой программе, но отказывается выполняться в моей, хотя в моей программе работают все запросы кроме UPDATE
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2017, 14:02
Ответы с готовыми решениями:

SQLITE update wp 8.1
Как выполнить update? Select делаю так. Класс использую SQLITE-net string path =...

SQlite Insert, delete, update
Добрый день. Возник такой вопрос. Есть база с таблицей MailSettings. Она пустая. При первом...

Sqlite UPDATE в пустой ячейке
Почему не получается записать в базу функцией UPDATE ? $update = $db->exec("UPDATE table SET...

Sqlite добавить значение к существующему. UPDATE
Жители форума, помогите с синтаксисом добавления в базу. У меня есть БД в ней 2 таблицы, добавляю...

14
4853 / 3999 / 1005
Регистрация: 29.08.2013
Сообщений: 25,554
Записей в блоге: 3
10.09.2017, 14:07 2
Цитата Сообщение от popryduhin Посмотреть сообщение
но отказывается выполняться в моей
так и говорит - "Не буду у тебя выполняться"??

ошибка где?
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
10.09.2017, 14:17  [ТС] 3
Пардоньте

Цитата Сообщение от qwertehok Посмотреть сообщение
так и говорит - "Не буду у тебя выполняться"??
ну да примерно так и сказал

attempt to write a readonly database sqlite

Добавлено через 35 секунд
что означает

попытка записи в базу данных только для чтения для базы данных SQLite

Добавлено через 46 секунд
Но ведь в рунтайме я могу выполнить update, а в рабочем коде нет

Добавлено через 1 минуту
перед запросом сохраняю параметры подключения

вот такие
Delphi
1
2
3
4
5
Database=D:\...\ALL_VK_ID.db
Synchronous=Normal
LockingMode=Normal
DriverID=SQLite
OpenMode=ReadWrite
Добавлено через 4 минуты
вот полный код процедуры

Delphi
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
procedure TMainForm.Sample(var ACountry, ACity, Aid: string);
var
 FD_Query : TFDQuery;
 Key      : string;
begin
 try
   FD_Query := TFDQuery.Create(nil);
 
   FDConnection.Params.Values['Database'] := ExeDir+'ALL_VK_ID.db';
   FDConnection.Params.Values['Synchronous'] := 'Normal';
   FDConnection.Params.Values['DriverID'] := 'SQLite';
   FDConnection.Params.Values['OpenMode'] := 'ReadWrite';
 
   FDConnection.Params.SaveToFile(ExeDir+'SQLITE.INI');
 
   FD_Query.Connection := FDConnection;
   FD_Query.SQL.Clear;
 
   FD_Query.SQL.Text := 'UPDATE `VK_ID` SET `IMAGE_STATUS` = ''true''' ;
   FD_Query.ExecSQL;
 
   FD_Query.SQL.Clear;
   FD_Query.SQL.Add(' select * from `VK_ID` where  `VK_ID`.`IMAGE_STATUS` = ''false'' limit 1;');
   if FD_Query.OpenOrExecute then
   begin
     FD_Query.First;
     ACountry := FD_Query.FieldByName('COUNTRY').AsString;
     ACity :=    FD_Query.FieldByName('CITY').AsString;
     Aid :=      FD_Query.FieldByName('ID').AsString;
     Key :=      FD_Query.FieldByName('KEY').AsString;
     FDConnection.Close;
 
     // UPDATE VK_ID SET IMAGE_STATUS = 'IMAGE_STATUS' WHERE "KEY" = 1
   end;
 finally
   FD_Query.Free;
 end;
end;
Добавлено через 58 секунд
при этом если я не буду выполнять

Delphi
1
2
 FD_Query.SQL.Text := 'UPDATE `VK_ID` SET `IMAGE_STATUS` = ''true''' ;
 FD_Query.ExecSQL;
то все ОК. Но без этого не как.
0
4853 / 3999 / 1005
Регистрация: 29.08.2013
Сообщений: 25,554
Записей в блоге: 3
10.09.2017, 14:19 4
права на файл с бд выставь - для всех
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
10.09.2017, 14:31  [ТС] 5
Цитата Сообщение от qwertehok Посмотреть сообщение
права на файл с бд выставь - для всех
Это на уровне операционки или на уровне базы?

Добавлено через 2 минуты
Цитата Сообщение от qwertehok Посмотреть сообщение
права на файл с бд выставь - для всех
Прав хватает, даже с лихвой, я же могу делать инсерты и я могу создавать файл. С правами нет проблем.

Добавлено через 36 секунд
А как же тогда я могу сделать Update в рунтайме????
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
10.09.2017, 14:32  [ТС] 6
SQLite: не работает Update

Здесь я могу сделать update
0
4853 / 3999 / 1005
Регистрация: 29.08.2013
Сообщений: 25,554
Записей в блоге: 3
10.09.2017, 14:36 7
покажи вкладку Безопасность для файла БД
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
10.09.2017, 15:20  [ТС] 8
SQLite: не работает Update

SQLite: не работает Update
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
10.09.2017, 15:21  [ТС] 9
Антивирус Каспер выключен.

Добавлено через 39 секунд
Имею полный доступ в любую директорию, в любом каталоге
0
4853 / 3999 / 1005
Регистрация: 29.08.2013
Сообщений: 25,554
Записей в блоге: 3
10.09.2017, 16:58 10
добавь пользователя Все и выставь ему максимальные права на файл

Цитата Сообщение от popryduhin Посмотреть сообщение
Имею полный доступ в любую директорию, в любом каталоге
UAC включен?
Делфи запускается от имени администратора?
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
10.09.2017, 18:35  [ТС] 11
Цитата Сообщение от qwertehok Посмотреть сообщение
UAC включен?
Делфи запускается от имени администратора?
Вот это конечно, да. UAC включен, я лох если из за этого. )))) Сча проверю
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
11.09.2017, 13:05  [ТС] 12
Цитата Сообщение от qwertehok Посмотреть сообщение
UAC включен?
Делфи запускается от имени администратора?
Запустил IDE от админа, результат тот же

SQLite: не работает Update
SQLite: не работает Update
SQLite: не работает Update
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
11.09.2017, 13:06  [ТС] 13
Я подозреваю что, что-то с настройками самого компонента...
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
11.09.2017, 13:11  [ТС] 14
В рунтайме совершаю аналогичный запрос и все хорошо, все счастливы
SQLite: не работает Update
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
11.09.2017, 13:28  [ТС] 15
Все разрешилось, и как всегда банальщина.
Я создал динамически новый компонент TFDConnection
И все заработало. Всем спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2017, 13:28
Помогаю со студенческими работами здесь

SQLite. Получить кол-во строк, затронутых UPDATE
"SELECT changes()" не проверяет, изменились ли записи в БД или просто были перезаписаны. Значит,...

Редактирование SQlite через UPDATE[rawQuery, Android]
Приветствую! Возник вопрос по редактированию БД SQlite. Пытался делать так: public editRec(long...

Триггер с after update не работает, а с for update работает
Не могу понять, почему так происходит? В нэте пишут, что after/for это the same . Но все же. В...

Не работает изменение, не могу понять почему, Update не работает, ошибку выдает
Помогите, изменение с помощью button string u =...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru