Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
36 / 35 / 17
Регистрация: 15.06.2017
Сообщений: 184

БД SQLite где найти примеры работы с API?

08.02.2018, 14:01. Показов 6012. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Взялся за разработку ГИС под конкретного заказчика. Нужно хранить пространственные данные и описание объектов в локальной БД у каждого пользователя. Сетевые БД типа Оракула и Мускула не рассматриваются. Ацесс имеет ограничения по размерам файла 2 Гб. Райма очень наворочена и непонятная реализация SQL. Остановился на SQLite - синтаксис SQL типичный, работает шустро, ограничений по размеру файла БД нет. НО! Очень мало полезных и проработанных примеров использования API движка, в основном через обертки. Официальный мануал только описывает функции, как их применить - не показано. Кое-что нашел на просторах всемирной свалки, но этого мало. Если подкините ссылки на полезные ресурсы - буду очень благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2018, 14:01
Ответы с готовыми решениями:

Примеры работы с SQLite
Можете мне дать примеры ,который я могу добавлять,удалять и изменить на БД через SQlite browser или Sqlite Manager или др.а читать будут...

Примеры работы с SQLite
можете дать ссылку или написать фрагмент кода как сохранять ссылки на файлы в базе данных?? Добавлено через 8 часов 16 минут то есть...

Примеры работы с SQLite
привет, а можете подсказать, я юзаю SQLiteOpenHelper, ну через наслденика естесно)) но у меня не выызваются метода onCreate, onUpgrade,...

34
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.02.2018, 13:27
Студворк — интернет-сервис помощи студентам
SqLite:

https://www.sqlite.org/cintro.html
https://www.sqlite.org/search?s=d&q=example

RAD:

Видео на ютюбе


http://docwiki.embarcadero.com... th_FireDAC

Видео на ютюбе

Видео на ютюбе
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
22.02.2018, 12:51
Avazart, Человек просит дать ссылки на примеры, а не на описание функций и использование компонент
Roddog2017, в личку скинул пару рабочих примеров, дальше разберетесь
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.02.2018, 13:21
TrollHammer, Я дал ему ссылку на примеры в том числе.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
22.02.2018, 13:27
Avazart, это примеры использования SQL в БД, а не использования С++ функций библиотеки. Я сам сталкивался с этой проблемой - официальная документация описывает функцию библиотеки, передаваемые аргументы и возвращаемое значение. А как использовать ее в конкретном случае... В лучшем случае - ничего.
И исключительно в моем субъективном видении программирование в среде Builder очень слабо освещено. И на русскоязычных форумах следовало бы создать разделы, где спецы делились бы опытом и эффективным кодом.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.02.2018, 13:31
Это что

https://www.sqlite.org/eqp.htm... ndex_scans

Добавлено через 1 минуту
Цитата Сообщение от TrollHammer Посмотреть сообщение
Я сам сталкивался с этой проблемой - официальная документация описывает функцию библиотеки, передаваемые аргументы и возвращаемое значение.
Чего вполне достаточно что бы начать думать самому.

Цитата Сообщение от TrollHammer Посмотреть сообщение
А как использовать ее в конкретном случае...
Включить мозг?
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
22.02.2018, 13:40
Цитата Сообщение от Avazart Посмотреть сообщение
https://www.sqlite.org/eqp.html#table_and_index_scans
Как сделать запрос в консоли. А как это вызвать из кода, какой функцией?
Далее будем дискутировать? Это не ссылки на рабочий код. В моем представлении это бы выглядело так:
1. открыть или создать БД (sqlite3 *db; ... sqlite3_open("c:\temp.db", &db))
2. создать таблицу
3. перебросить в поле определенной записи значение из переменной
4. заполнить поле типа BLOB значениями из структуры
5. считать/записать из/в файл запись из таблицы
и т. д.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.02.2018, 13:55
Да разуйте глаза и посмотрите в самый низ страницы где "Sample Code"

Добавлено через 4 минуты
Цитата Сообщение от TrollHammer Посмотреть сообщение
1. открыть или создать БД (sqlite3 *db; ... sqlite3_open("c:\temp.db", &db))
2. создать таблицу
3. перебросить в поле определенной записи значение из переменной
4. заполнить поле типа BLOB значениями из структуры
5. считать/записать из/в файл запись из таблицы
Начните с
https://www.sqlite.org/quickstart.html
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
22.02.2018, 13:55
Avazart, пункты 1, 2 описаны. А дальше? Глаза разул шире гаражных ворот.
Дальше продолжать смысла нет. Я человеку скинул ссылку на свои наработки, надеюсь - пойдет на пользу.
У кого есть интерес к этой БД - пишите в личку, чем смогу помогу.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.02.2018, 13:59
Цитата Сообщение от TrollHammer Посмотреть сообщение
4. заполнить поле типа BLOB значениями из структуры
https://www.sqlite.org/search?s=d&q=BLOB

Остальное детские вопросы, говорящие что Вы либо еще не изучили API и/или не изучили С++.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
22.02.2018, 14:04
A Handle To An Open BLOB
typedef struct sqlite3_blob sqlite3_blob;
An instance of this object represents an open BLOB on which incremental BLOB I/O can be performed. Objects of this type are created by sqlite3_blob_open() and destroyed by sqlite3_blob_close(). The sqlite3_blob_read() and sqlite3_blob_write() interfaces can be used to read or write small subsections of the BLOB. The sqlite3_blob_bytes() interface returns the size of the BLOB in bytes.

Constructor: sqlite3_blob_open()

Destructor: sqlite3_blob_close()

Methods: sqlite3_blob_bytes(), sqlite3_blob_read(), sqlite3_blob_reopen(), sqlite3_blob_write()

See also lists of Objects, Constants, and Functions.

И так далее... Что я, как новичок, из этого получу? Из чего я создам рабочий код, решающий текущую задачу? Так:
C++
1
2
  sqlite3_blob_open(); //хорошая функция... куда я это прислюню?
  sqlite3_blob_bytes(); //байты - знаю, возьму где-то, но куда их поместить?
Продолжать?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.02.2018, 14:07
Цитата Сообщение от TrollHammer Посмотреть сообщение
Что я, как новичок, из этого получу?
Если заменить слово "новичек" обидным словом, то да ничего.
В остальном стоит научится пользоваться документациями.

Open A BLOB For Incremental I/O
C++
1
2
3
4
5
6
7
8
9
    int sqlite3_blob_open(
      sqlite3*,
      const char *zDb,
      const char *zTable,
      const char *zColumn,
      sqlite3_int64 iRow,
      int flags,
      sqlite3_blob **ppBlob
    );
This interfaces opens a handle to the BLOB located in row iRow, column zColumn, table zTable in database zDb; in other words, the same BLOB that would be selected by:
SQL
1
SELECT zColumn FROM zDb.zTable WHERE rowid = iRow;

https://www.sqlite.org/c3ref/blob_open.html
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
22.02.2018, 14:10
Цитата Сообщение от Avazart Посмотреть сообщение
"новичек"
Новое слово в словаре Ожегова

Добавлено через 1 минуту
Avazart, Закроем дисскуссию
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.02.2018, 14:18
Что тут может быть непонятно? Берем пробуем ... смотрим другие функции что дает нам понимание как это использовать.


Цитата Сообщение от TrollHammer Посмотреть сообщение
sqlite3_blob_bytes(); //байты - знаю, возьму где-то, но куда их поместить?
То что пишут читать/переводить не пробовали :
C API: Return The Size Of An Open BLOB
(c3ref/blob_bytes.html)
sqlite3_blob_bytes()
Returns the size in bytes of the BLOB accessible via the successfully opened BLOB handle in its only argument. The incremental blob I/O routines can only read or overwriting existing blob content; they cannot change the size of a ...
https://www.sqlite.org/search?s=d&q=BLOB

Добавлено через 2 минуты
Цитата Сообщение от TrollHammer Посмотреть сообщение
Новое слово в словаре Ожегова
Ну да в этом плане Вы сама внимательность, осталось только научится пользоваться гугл-переводчиком.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
22.02.2018, 14:31
Цитата Сообщение от Avazart Посмотреть сообщение
Ну да в этом плане Вы сама внимательность, осталось только научится пользоваться гугл-переводчиком.
Я аглицкий в школе учил, в универе немножко тренировали, а в Лос-Аламос пригождается помаленьку И закроем флуд - это уже никому не интересно.

Добавлено через 9 минут
Цитата Сообщение от Avazart Посмотреть сообщение
sqlite3_blob **ppBlob
Так, для затравки. Как я из этой документации соображу, что мне нужно передать параметру
C++
1
 **ppBlob
структуру типа
C++
1
2
3
4
5
6
7
struct CustomPoint
{
    int Num
    double x, y, z;
    bool IsSlave;
    int iType;
}
Пример в студию
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.02.2018, 17:01
Точнее сказать не передать, а получить ...
И не
Цитата Сообщение от TrollHammer Посмотреть сообщение
CustomPoint
А sqlite3_blob т.е хендл вашего блоба.

On success, SQLITE_OK is returned and the new BLOB handle is stored in *ppBlob.
Для записи в блоб используете его хендл и write-функцию.
C++
1
int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset);

Тобишь приблизительно так

C++
1
2
3
CustomPoint point;
//...
sqlite3_blob_write( pBlob, &point, sizeof(point),0);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.02.2018, 17:01

Где найти описание и примеры работы с библиотеками Flex и Bison?
Подскажите,где можно найти описание Flex и Bison C++. Желательно,чтобы был пример еще.

Где можно найти описания и примеры работы всех Java библиотек и классов
и как с ними со всеми работать

Где найти API для работы с речью в Windows Phone 7?
Здравствуйте. Подскажите,пожалуйста, где можно найти айпи для работы с речью в Windows Phone 7 как на этом видео...

Где посмотреть примеры классов для работы с портами?
Люди, может кто знает где посмотреть примеры классов для работы с портами LPT, COM, USB

Где можно посмотреть примеры (исходники) работы с базой данных на C#
Где можно посмотреть примеры (исходники) работы с базой данных на C#, работа с XML,SQL. Просто не знаю с чего начать...


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru