Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/26: Рейтинг темы: голосов - 26, средняя оценка - 4.92
 Аватар для skinex
4 / 4 / 4
Регистрация: 09.03.2013
Сообщений: 209

Чтение данных из базы SQLite в массив строк

06.07.2015, 09:46. Показов 10432. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, вот назрел такой вопрос, нужно считать данные с определенного поля в массив строк, с access и ado делал так:
Delphi
1
2
3
4
for i:=1 to Adoquery1.RecordCount do
begin
a[i]:=AdoQuery1['vopr'];
end;
Для подключение базы SQLite использую firedac. Как такое реализовать в этой бд?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.07.2015, 09:46
Ответы с готовыми решениями:

Файл базы данных SQLite лежит в папке с програмой
Как сообщить что файл бд sqlite находится в папке с програмой? Потому как при переносе програмы на другой пк пишет что то вроде не удается...

Сортировка строк в таблице базы данных SQLite и DataGridView
Здравствуйте! Помогите с проблемой. Выкладываю код простой программки с базой данных SQLite. Ставится задача, чтобы строки были в...

Восстановить поврежденный файл базы данных SQLite (сделать дамп запароленного файла базы данных)
Вообщем не понятно после чего перестал открываться файл базы данных с ошибкой - "database disk image is malformed". Нашел...

34
 Аватар для DjSens
5 / 7 / 0
Регистрация: 19.09.2019
Сообщений: 94
Записей в блоге: 3
16.07.2022, 14:53
Студворк — интернет-сервис помощи студентам
D1973, это в IDE так обзываются все текстовые поля

а вот скриншот из SQLite Database Browser
Миниатюры
Чтение данных из базы SQLite в массив строк  
0
462 / 364 / 83
Регистрация: 17.04.2022
Сообщений: 1,214
Записей в блоге: 8
16.07.2022, 15:02
Цитата Сообщение от D1973 Посмотреть сообщение
String и WideMemo - это совсем не родственные типы данных.
В Sqlite строгая типизация появилась недавно (то есть движку пофиг что ему подсовывают) и мне кажется, что версия, которая используется у ТС еще не знает слова STRICT

И у него все таки ошибка
Цитата Сообщение от DjSens Посмотреть сообщение
Ошибка: FDQuery1: Field 'CodedMail' not found.
DjSens,
А попробуйте

SQL
1
FDQuery1.SQL.Append('SELECT id FROM mails WHERE CodedMail="'+'XXX'+'"');
Какая ошибка вылезет?
0
 Аватар для DjSens
5 / 7 / 0
Регистрация: 19.09.2019
Сообщений: 94
Записей в блоге: 3
16.07.2022, 15:35
sqltd1, с этой ошибкой разобрался - я пока с ней боролся - создал через IDE поле CodedMail в компоненте TFDQuery1, сейчас убрал и ошибка пропала, непонятно правда из-за чего она в начале была - я много всего попробовал изменить...
Теперь другая вылезает в другом месте, если не заборю - напишу

Добавлено через 25 минут
sqltd1,
новую ошибку не смог забороть пока - FDQuery1: Dataset not in edit or insert mode. на попытку записать в БД данные строчкой
SQL
1
'INSERT INTO mails (CodedMail, cPass, id) VALUES (:cMail, :cpass, :id)'

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
procedure TServerModule.StoreMailIdPass(cMail, cpass, id:string);
var
  line: integer;
begin
  line:=0;
  try
     FDQuery1.Close;
     FDQuery1.SQL.Clear;  //   .Table('mails').Assign();
     FDQuery1.SQL.Append('SELECT line FROM mails WHERE CodedMail="'+cMail+'"');
     FDQuery1.Open;
  finally
    //
  end;
 
  if (FDQuery1.RowsAffected>0) then line:=FDQuery1.FieldByName('line').AsInteger;
 
  if (line>0) then
  begin
      //
  end
  else
    begin
        FDQuery1.Edit; // Append;  //  Append - добавление  Delete - удаление
        FDQuery1.SQL.Clear;  //   .Table('mails').Assign();
        FDQuery1.SQL.Append('INSERT INTO mails (CodedMail, cPass, id) VALUES (:cMail, :cpass, :id)');
      try
        FDQuery1.Post;
      finally
       //
      end;   {}
    end;
end;
0
 Аватар для Пытливый
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
16.07.2022, 16:09
Есть запросы возвращающие данные - Select ...
их надо выполнять через FDQuery1.Open;
И есть запросы выполняющие, данные не возвращающие. Insert ... Update... Delete...
их уже надо выполнять через FDQuery1.ExecSQL;
И уж такую окрошку:
Delphi
1
2
3
4
5
6
7
 begin
        FDQuery1.Edit; // Append;  //  Append - добавление  Delete - удаление
        FDQuery1.SQL.Clear;  //   .Table('mails').Assign();
        FDQuery1.SQL.Append('INSERT INTO mails (CodedMail, cPass, id) VALUES (:cMail, :cpass, :id)');
      try
        FDQuery1.Post;
      finally
вообще в корзину
0
 Аватар для DjSens
5 / 7 / 0
Регистрация: 19.09.2019
Сообщений: 94
Записей в блоге: 3
16.07.2022, 16:21
Пытливый, исправил на

Delphi
1
2
3
4
5
6
7
        FDQuery1.Insert; 
        FDQuery1.SQL.Clear;  
        FDQuery1.SQL.Text:='INSERT INTO mails (CodedMail, cPass, id) VALUES ("'+cMail+'", "'+cpass+'", "'+id+'")';
      try
        FDQuery1.ExecSQL;  // - Database is locked   
      finally
      end;   {}
получил ошибку FDQuery1: Database is locked
0
 Аватар для Пытливый
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
16.07.2022, 16:26
Уберите 1 и 2 строку.

Добавлено через 58 секунд
Поле id у вас строкового типа в базе?
0
 Аватар для DjSens
5 / 7 / 0
Регистрация: 19.09.2019
Сообщений: 94
Записей в блоге: 3
16.07.2022, 16:33
Пытливый, не помогло, id - текстовое поле

по прежнему [FireDAC][Phys][SQLite] ERROR: database is locked.
0
462 / 364 / 83
Регистрация: 17.04.2022
Сообщений: 1,214
Записей в блоге: 8
16.07.2022, 17:19
Цитата Сообщение от DjSens Посмотреть сообщение
по прежнему [FireDAC][Phys][SQLite] ERROR: database is locked.
смотреть кто блокирует файл можно с помощью Process Explorer https://docs.microsoft.com/en-... s-explorer
здесь описание как смотреть https://superuser.com/question... n%20files.

кроме того, переведите БД в wal-mode - исполните после открытия БД команду "PRAGMA journal_mode=WAL;" включится режим "много читателей + 1 писатель".
0
 Аватар для Пытливый
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
16.07.2022, 17:25
Цитата Сообщение от DjSens Посмотреть сообщение
не помогло, id - текстовое поле
по прежнему [FireDAC][Phys][SQLite] ERROR: database is locked.
Покажите код, который у вас сейчас.
0
Модератор
 Аватар для D1973
9962 / 6497 / 2462
Регистрация: 21.01.2014
Сообщений: 27,506
Записей в блоге: 3
16.07.2022, 17:26
DjSens, а в момент выполнения операции Ваша база не открыта где-либо еще? Тот же Database Browser...
0
 Аватар для Пытливый
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
16.07.2022, 17:31
В настройках FDConnection у вас так?
1
462 / 364 / 83
Регистрация: 17.04.2022
Сообщений: 1,214
Записей в блоге: 8
16.07.2022, 17:36
Пытливый, спасибо за картинку.

DjSens, вместо ""PRAGMA journal_mode=WAL;" там надо journalMode заменить на что-то со словом WAL
0
 Аватар для DjSens
5 / 7 / 0
Регистрация: 19.09.2019
Сообщений: 94
Записей в блоге: 3
16.07.2022, 18:16
Все советы проверю через два дня, уехал из города...
0
 Аватар для Пытливый
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
16.07.2022, 18:25
Слабак!
0
 Аватар для DjSens
5 / 7 / 0
Регистрация: 19.09.2019
Сообщений: 94
Записей в блоге: 3
18.07.2022, 00:34
Пытливый, помогло в свойствах FDConnection - Params - LockingMode поставить LmNormal
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2022, 00:34

Qt чтение из базы данных в переменную или массив
Довольно странный вопрос, т.к. вывод переменной реализован очень просто, а вот занесение ее в массив или переменную - никак не удается. ...

Чтение данных из бд SQlite 3
Короче говоря, Всем привет, Я использую для своих проектов библиотеку Sqlite.Data, Мне она нравится, вот только есть одно "НО"...

Написать функции для считывания данных о выбранных сущностях из базы данных SQLite
Здравствуйте, помогите доделать программу. Надо написать функции для считывания данных о выбранных сущностях из базы данных SQLite. В...

Постолбцовое отображение данных из базы данных SQLite
Уважаемые форумчане, помогите пожалуйста. Необходимо вывести данные из таблицы базы данных в TextView. Вот код, когда в TextView...

Построчное считывание данных из базы данных SQLite
Всем привет) Столкнулась с такой проблемой: получаю данные из бд SQLite через SQLiteDataReader с помощью метода GetValue(i). Но...


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru