Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906

Вектор в SQLite

03.10.2012, 17:30. Показов 3436. Ответов 25
Метки нет (Все метки)

Господа, ковыряюсь тут с SQLite3 и возник у меня щас вопрос - можно ли и как запихать цельный вектор в конкретное поле? Ну или массив запихать. При попытке подсунуть ему в запрос просто имя массива, в базу добавляется только первый элемент массива, что в принципе и понятно. На вектор вообще ругается - говорит давай мне индекс элемента вектора, который надобно пихать в базу.

Добавлено через -0 минуты
Я хочу чтобы в идеале по
SQL
1
SELECT vect FROM tabIe WHERE RowNum = 666;
мне выдавался вектор.

Добавлено через 47 минут
Вот все думаю в сторону BLOB поля. Если там можно хранить картинки, то почему же нельзя и вектор?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.10.2012, 17:30
Ответы с готовыми решениями:

Как написать формулы в sqlite или отказаться от использования sqlite вовсе
Доброго времени суток. Друзья, пишу справочник по физике, недавно столкнулся с проблемой - как написать формулы в sqlite? пользуюсь DB...

Файл cookies.sqlite не sqlite на самом деле, или как его открыть
хочу прочитать куки браузеров (это не противозаконно) оперу сделал, хром сделал, у хрома как раз sqlite как и у мозилы делаю...

Sqlite в c++ под linux, как правильно подключить sqlite?
Добрый день. Подскажите пожалуйста, как подключить sqlite к c++? Пишу приложение без сред разработки. в миднайте. есть .cpp файл, .h...

25
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
12.10.2012, 14:21  [ТС]
И вообще его хрен поймешь. В соседнем проекте делаю
SQL
1
CREATE TABLE IF NOT EXISTS Poligon (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, Name TEXT);
и все прекрасно работает. Ни на что не ругается.

Но в момент
SQL
1
INSERT INTO Poligon (id, Name) VALUES (NULL, 'P1');
происходит добавление в базу строк
SQL
1
2
3
4
1; Р1;
1; Р1;
1; Р1;
...
то есть никакого инкремента не происходит.

Добавлено через 1 минуту
Цитата Сообщение от Grossmeister Посмотреть сообщение
Ну да. PK - это один вид constraint, NOT NULL - другой
А, блин, теперь вижу.

Добавлено через 37 минут
Ни у кого ни каких идей?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
19.10.2012, 11:02  [ТС]
В итоге выяснилось следующее.
Запрос рабочий, но надо внимательно следить за кавычками. Два [запрещено цензурой] апострофа, пропущенных в одном месте, понаделали столько дел.
Создание главной таблицы:
SQL
1
CREATE TABLE IF NOT EXISTS Poligon (id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT);
Вставка в таблицу с автоматическим инкрементированием поля id:
SQL
1
INSERT INTO Poligon (id, Name) VALUES (NULL, 'CurentNamePoligon');
И при каждом выполнении запроса INSERT в каждую новую строку заместо NULL будет вставляться номер, на единицу больший последнего записанного значения.

Создание второй таблицы:
SQL
1
CREATE TABLE IF NOT EXISTS XY (XY_id INTEGER, X INTEGER, Y INTEGER);
И вот тут мне хочется привязать поле XY.XY_id к Poligon.Name через REFERENCES, чтобы автоматически, при удалении последнего, в дочерней таблице удалялись бы и все вязанные строки. Переложить это все на СУБД (которым на сколько я понял является сама моя программа, а точнее sqlite-вская библиотека, к ней прикомпилированная ).
Но что-то не могу найти внятных примеров как это именно реализовать.
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
19.10.2012, 15:03
Цитата Сообщение от SatanaXIII Посмотреть сообщение
И вот тут мне хочется привязать поле XY.XY_id к Poligon.Name через REFERENCES, чтобы автоматически, при удалении последнего, в дочерней таблице удалялись бы и все вязанные строки. Переложить это все на СУБД (которым на сколько я понял является сама моя программа, а точнее sqlite-вская библиотека, к ней прикомпилированная ).
Но что-то не могу найти внятных примеров как это именно реализовать.
Вот здесь посмотри

Добавлено через 1 минуту
В твоем случае надо использовать ON DELETE CASCADE

Добавлено через 6 минут
С этой БД не работал, но судя по доке должно получится что-то типа:
SQL
1
2
3
CREATE TABLE IF NOT EXISTS XY (XY_id INTEGER REFERENCES Poligon(id) ON DELETE CASCADE, 
                                            X INTEGER,
                                            Y INTEGER);
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
22.10.2012, 11:13  [ТС]
_Dimon_, ясно, спасибо, буду ковыряться потихоньку.
А вот еще такую штуку накопал:
SQL
1
2
3
sqlite3_exec(db, "BEGIN", NULL, NULL, NULL)
//
sqlite3_exec(db, "COMMIT", NULL, NULL, NULL)
Если между двумя этими командами вставить любой здоровый код обращения к базе, то получится что-то типа транзакции? Может лучше везде ее тогда пихать, или можно перебрать так?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
22.10.2012, 11:33
Вообще любая работа с БД должна быть в рамках транзакций - это нормальный подход. Сделал, проверил, то что нужно - COMMIT. Получилось не то - ROLLBACK.
Кстати Oracle начинает транзакцию с первым оператором после начала работы/commit/rollback. Т.е. никакого оператора явного начала транзакции просто нет.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
22.10.2012, 11:42  [ТС]
В общем лишним не будет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2012, 11:42

Редактирование связанных объектов через EF в SQLite, C#, EF 6.2, SQLite, C# Winforms
Здравствуйте. Суть: используя вышеперечисленные технологии, при чтении из базы данных связанных объектов после добавления, функция...

SQLite for Excel или как выгрузить данные в SQLite
Здравствуйте! Мне необходимо написать макрос для выгрузки данных из excel в sqlite. Нашла проект SQLite for Excel, но при запуске...

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов
Привет! Задача следующая. Нужно реализовать класс "вектор" с конструкторами, которые позволяют создать нулевой вектор и вектор с...

SQLite не найден SQLite.Interop,dll
работаю на виртуальной машине windows 7 x86. Установлен Visual Studio 2013. Через NuGet установил для своего проекта...

Умножить одномерный массив (вектор-строка) на главную диагональ (вектор столбец)
Помогите исправить ошибки в коде, пожалуйста. Задание: задать матрицу 3х3 с помощью указателей, задать одномерный массив из 3-х...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru