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

Вектор в SQLite

03.10.2012, 17:30. Показов 3314. Ответов 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
1408 / 572 / 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
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru