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

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

06.07.2015, 09:46. Показов 10188. Ответов 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
450 / 351 / 83
Регистрация: 17.04.2022
Сообщений: 1,166
Записей в блоге: 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
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 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
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 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
450 / 351 / 83
Регистрация: 17.04.2022
Сообщений: 1,166
Записей в блоге: 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
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
16.07.2022, 17:25
Цитата Сообщение от DjSens Посмотреть сообщение
не помогло, id - текстовое поле
по прежнему [FireDAC][Phys][SQLite] ERROR: database is locked.
Покажите код, который у вас сейчас.
0
Модератор
 Аватар для D1973
9946 / 6481 / 2460
Регистрация: 21.01.2014
Сообщений: 27,465
Записей в блоге: 3
16.07.2022, 17:26
DjSens, а в момент выполнения операции Ваша база не открыта где-либо еще? Тот же Database Browser...
0
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
16.07.2022, 17:31
В настройках FDConnection у вас так?
1
450 / 351 / 83
Регистрация: 17.04.2022
Сообщений: 1,166
Записей в блоге: 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
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 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 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Написать программу вычисления стоимости некоторого количества (по весу) яблок. Решение: Создан документ, с табличной частью. . .
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru