![]() |
|
![]() ![]() ![]() |
|
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Итак, скачал я 213 Кб файлов с расширением *.С и *.H
а так же билиотеку sqllite3.dll Что делать дальше? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Да, много воды утекло с тех пор, как я последний раз брался за SQLite. Сорри, я конечно не мог знать, что они конкретно поменяли интерфейс. Но это не беда, конечно
![]() ![]() К сожалению в прошлый раз я дал тебе ссылочку на старую версию. Чтобы не топтаться на месте переходим на новейшую: http://www.sqlite.org/sqlite-source-3_2_2.zip вот helloword'ик (работает, но будет ещё меняться)
Теперь создаём проект. Самый быстрый способ: Рспаковываем архив в папку. Берём вышеописанный пример и сохраняем его в той же папке как (например) sergej.cpp Открываем sergej.cpp в VC6 и просим закомпилить. Компилер ругается на unresolved symbols. Открываем таб FileView и правой кнопкой мыши в меню выбираем "add Files to Project". Забираем ВСЕ *.с файлы кроме: shell.c и tclsqlite.c. Компилируем. Всё! Как альтернативу, подсоеденю готовый проект. Присоединённый файл ( Кол-во скачиваний: 102 ) ![]() |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Вот тоже неплохой пример работы. Там так же описываются примеры работы вторым способом - через sqlite3_prepare() sqlite3_step()
http://www.adp-gmbh.ch/sqlite/bind_insert.html Таким образом можно забирать результат строка за строкой. |
|||
|
||||
Kurt |
|
|||
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Кстати, кто-то мне говорил, что в SQLite проблемы с удалением записей - приходилось копировать таблицу, убивать и заново воссоздавать.
В новых версиях SQLite эта проблема решена? P.S. Сории за оффтоп, просто интересно очень.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
![]() Проблема сводится к вырезанию части контента из файла. Так что решить её однозначно никогда и нигде не удастся. Хотим удалить физически, надо переписывать файлы БД чтобы не оставалось там "пустых" мест. В новой версии есть "autovacuum", который эту процедуру будет повидимому автомвтически делать. Я к сож. первый раз за 2 года за SQLite взялся, поэтому точно говорить не буду. Раньше это делалось коммандой "vacuum" |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Так,
sergej.z, начинаю пробовать. Думаю эта тема хорошо разовьется. Сейчас проблема сохранения данных без привязки к установки базы-очень актуальна. Раньше пользовались файлами DBF, но сейчас на них бесплатных библиотек нет.А в Инете много встречается просьб.SQLite-лучшая тому альтернатива. Думаю, если хорошо пойдет, тема будет большой, и можно FAQ смело делать.. ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
sergej.z
Твой пример работает. Только вот в 7 студии я не могу так сделать! Пишет
Итак со всеми файлами.. -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
ээээ седьмой у меня нет. И не будет
![]() Это компилерские приколы. А может она вообще си не понимает? Можно в либу скомпилить конечно. |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
B в смысле библиотеку подключить sqlite3.dll?
А пример под либу можешь преписать? ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Так Сережа, работаем дальше!
Для тех , кто не понял, добавлякм файлы... Project->Add Existing Item, и выбираю файлы с расширеним *.C, как писал sergej.z А потом в свойствах проекта делаем
Все работает.. ![]() Итак, дальше.. Попробоввал я в коде сделать
Появилась библиотека Dima.dll Я так понял это моя база? Добавлено @ 12:58 Вообще,sergej.z, может вкратце описать создание базы, открытие, выполнение всех запросов, закрытие ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
||||
|
|||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Может быть простой Rebuild All помог бы? |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
DENNN
Нет, это проблема в файлах, потому, что они на С написаны, а не на С++ -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Итак давйте для начала возьмем три кита
sqlite3_open()-Открывает/создает базу данных sqlite3_exec() -Выполняет запрос.Весь синтаксис у них описан... sqlite3_close()-Собсвтенно закрывает базу.. Ну что,sergej.z, давай потренируемся на создании трех таблиц.. Я предлагаю это тебе, хотя буду пробывать сам ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Так, все нормально, теперь вопрос, как ходить по записям, кроме как
int myCallback(void*,int,char**, char**); -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Первые проблемы..
Не отрабатывает функция в классе
Все нормально i, возвращает ноль, а вот до функции дело не доходит... Это сообщение отредактировал(а) Coocky - 4.8.2005, 16:51 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Нет, тут есть проблемка, все таки, запросы правильные... Серега, ты хоть отвечай, а то я сам с собой болтаю.... Это сообщение отредактировал(а) Coocky - 4.8.2005, 17:53 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
sergej.z
А вот действительно проблема И так, запускаем твою прогу первый раз.Все нормально.. Теперь коменнтируем добавление записей..Я их удалю
Вот тут и проблема, записи все пустые, такое ощущение, что все перезаписывется, в чем проблема? Это сообщение отредактировал(а) Coocky - 4.8.2005, 17:50 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
sergejzr |
|
||||||||||||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Привет
![]() ![]() ![]()
Нет, всё нормально. Просто надо после добавления выполнить commit. Тогда все изменения действительно войдут в силу. Я исправил код - пример. Обрати внимание на добавленный:
Это главное. теперь пройдусь по предыдущим постам ![]()
Либу чтобы подключить, ничего переписывать не надо. Она ведь тоже самое, что и скомпилленые обьекты. А вот чтобы длль подсоеденить, надо ессно писать подгрузку функций из неё. Если время будет, добавлю так же.
Ты имеешь ввиду понвился файл Dima.db ![]() Да, это и есть файл базы.
Дык в примере вроде всё описано в комментарах
sqlite3_prepare(), sqlite3_step(). Примеры по линьку, который я давал в одном из первых сообщений. Время будет, добавлю свой пример. Пока очень занят..
Наверное записей нет таких. |
||||||||||||||
|
|||||||||||||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
sergej.z
Держи плюс ![]() Да, и еще забыл спросить, нормально будет работать со статической компоновкой? Я вроде у других проверял, так файл без расширения dll... И еще,sergej.z, я что-то плохо понимаю, но не нахожу техх нюансов , в мануале, типа commit... Если можно, напиши, а я пока по MFC пройдусь ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Да, конечно. У всего есть свои плюсы и минусы. например Длльку можно будет быстро заменить при апдейте, за это надо её всегда за собой таскать + подгружать каждый раз. Статическая компоновка позволит сделать один файл, но при обновлении самой SQLite Всё надо будет заного компилить. Хотя конечно, если тебя сегодняшняя версия устраивает, зачем вообще обновлять? ![]()
Ну это вообще то теория баз данных. С библиотекой имеет мало общего, разве что последняя её имплементирует. begin-> начало трансакции commit -> конец трансакции. Это в любой нормальной БД. Почитай какую нибудь литературу по теории БД. |
||||
|
|||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Итак пример первый теперь с возможностью динамической подгрузки и использования sqlite3_step();(пример 2)
Осталась небольшая непонятка. В callback поидее с расстоянием в columns должны лежать типы данных. Но это не так. Где их там взять - ума не приложу. sqlite3_step работает отлично. Да и я бы его рекомендовал конечно вместо callback. И интерфейс его в этой версии намного удобней ![]()
|
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
sergej.z
Найди ошибку... (не создается первичный ключ)
Это сообщение отредактировал(а) Coocky - 5.8.2005, 18:15 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Вообще в SQLite все типы - string.
И существует только int primary key. Остальные декларации полей просто чисто для информации. Можешь туда писать что хочешь, всё игнорируется. Вообще, прежде чес работать с базой прочитай про Syntax. А я пока попробую наваять тебе запросы ![]() Добавлено @ 18:31 Так же SQLite сам генерит ID для просмотра тебе надо написать например: select *,ROWID from ..... итд. Добавлено @ 18:35 Когда добавляешь NULL вместо ключа, он генерится автоматом. Вот так это надо делать:
|
|||
|
||||
Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
sergej.z
Спасибо!
Не веришь, как я горю с проектом ![]() Поэтому и пользуюсь этим топиком, в своих целях, а заодно и для других. ![]() Кстати я тоже не стою на месте, и уже знаю ответы на многие вопросы при работе с SQLite в среде МФС ( а проблем хватает!), но они уже решены.. ![]() Кстати, насчет скорости, сложные запросы еще не делал, а вот код при создании базы и таблиц немного подвисат. Не сильно, на секунду. но все же. Но думаю это в порядке вещей.. ![]() Добавлено @ 22:00
Вообще-то callback-нормальный вариант, хотя немного неудобный, для каждого запроса(который отличается от предыдущего) приходится добавлять новую фукнцию, если я хочу присвоить другим переменным даные, хотя написав сво класс от этого можно избавится.. ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
||||
|
|||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
sergej.z
а пример твой не рабочий... ![]() Добавлено @ 11:03 А вот если NULL убрать, то рабочий.. ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Vatel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.8.2005 Репутация: нет Всего: нет |
Добрый день, пробовал компилировать helloword'ик, у меня не вышло.
Компилятор Borland C++ v.5.02 выдал такой вот Message Info :Compiling D:\SQLProject\gendb.c Warn : gendb.c(95,2):Parameter 'argc' is never used Warn : gendb.c(76,2):'rc' is assigned a value that is never used Warn : gendb.c(103,2):Parameter 'NotUsed' is never used Warn : gendb.c(105,2):Undefined structure 'sqlite3' Warn : gendb.c(105,2):Undefined structure 'sqlite3_stmt' Warn : gendb.c(105,2):Undefined structure 'sqlite3_context' Warn : gendb.c(105,2):Undefined structure 'Mem' Info :Linking D:\SQLProject\gendb.exe Error: Error: Unresolved external '_sqlite3_open' referenced from D:\SQLPROJECT\GENDB.OBJ Error: Error: Unresolved external '_sqlite3_errmsg' referenced from D:\SQLPROJECT\GENDB.OBJ Error: Error: Unresolved external '_sqlite3_exec' referenced from D:\SQLPROJECT\GENDB.OBJ Error: Error: Unresolved external '_sqlite3_close' referenced from D:\SQLPROJECT\GENDB.OBJ Подскажите в чем загвостка Это сообщение отредактировал(а) Vatel - 7.8.2005, 06:45 |
|||
|
||||
sergejzr |
|
||||||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Да, autoincrement не нужен NULL ![]() Vatel, пишет ведь,
Я вверху уже писал, что *.с файлы надо добавлять в проект отдельно.
В Бильдере естественно это не FileView , но в меню возможность добавки файлов конечно же имеется. Для начала попробуйте запустить с ДЛЛь
Сама sqlite3.dll должна лежать там же, где проект или в windows\system PS: Прицепил обновлённый файл примера. |
||||||||
|
|||||||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Ув. Vatel, когда скомпилите проект, выложите плиз helloword'ик сюда для примера
![]() |
|||
|
||||
Vatel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.8.2005 Репутация: нет Всего: нет |
Добрый день, попробовал запустить исходничек с Dll, заработало.
Делал так: Создавал директорию, туда сбрасывал примерчик от 7.8.2005, 13:34 и Dll'ку. (больше ничего делать не пришлось) Сейчас сижу разбираюсь, вот состряпал по аналогии свой helloWorld'ик. прога перебирающая все html-файлы в директории на основе их сама заполняет БД, Можно вводить SQL - запросы с консоли результаты будут выводится в файл в html - формате.
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Прекрасно! Рад, что получилось
![]() Всё же попробуйте статиком скомпилить, чтобы длльку не таскать за собой (в этом конечно большое преимущество SQLite) |
|||
|
||||
Vatel |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.8.2005 Репутация: нет Всего: нет |
Добрый день, пытался более подробно разобраться с
примерчиком от 7.8.2005, 13:34 и наткнулся на такие строки
я так понял это описание ползовательского типа данных, но оно какоето непонятное, вот если бы я увидел нечто вроде
то до меня бы дошло, а вот
ни как в голове не укладывается. Обьясните плиз чего это значит то (или хотябы ссылку на доки дайте). Это сообщение отредактировал(а) Vatel - 11.8.2005, 13:17 |
||||||
|
|||||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Непрозрачная структура. Просто обьявление, что такой тип данных где то в программе определён.
Так как поля этой структуры не используются в нашем коде, их и не нужно определять. Мы пользуемся функциями возвращающими этот указатель и передаём его опять же в функции. Самим указателем мы не пользуемся. PS: это как обьявление:
|
|||
|
||||
patison |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 31.1.2007 Репутация: нет Всего: нет |
Здравствуйте!
Скачал я архив с хидерами и .c-файлами. Но подключать всё это к проекту, по некоторым причинам, не очень удобно. Если я правильно понял, я могу не подключать к своему проекту все .h и .c, а могу использовать dll, из предложенного архива. Объясните пожалуйста, как мне прилинковать функции из длл к проекту. (надеюсь, прально выразился ![]() Спасибо за помощь |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Выше находится пример кода с описанием и комментами. Необходимо будет только в проекте только sqlite.h. ДЛЛ динамически подгружается во время работы программы.
Кстати не уверен точно, но вроде бы в этой теме архив цеплял с работающим примером даже. |
|||
|
||||
patison |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 31.1.2007 Репутация: нет Всего: нет |
Спасибо, Сергей! Я действительно не обратил внимание на приведенный выше пример. Теперь всё работает!
![]() |
|||
|
||||
wotker |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 18.7.2006 Где: Ростов-на-Дону Репутация: нет Всего: 5 |
Хочу вытащить некоторые поля из базы данных firefox-а. ее имя mozStorage.db.
rc = sqlite3_open("mozStorage.db", &db); rc = sqlite3_exec(db, "SELECT Title, FROM moz_history;", callback, 0, &zErrMsg); Появляются след. вопросы: mozStorage не виден. rc равен нулю. тоесть создается новая db. Вопрос такой: как узнать что создается новая база данных, а не используется старая? И как увидеть список всех баз данных на компьютере? --------------------
ICQ :: 347306684e-mail :: wotker[at]rambler[dot]ru |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Вы должны понимать, что база данных SQLite - обыкновенный файл. Поэтому список всех баз на компьтере можно получить толъко проверив последовательно каждый файл на диске на наличие формата SQLite. Надо указывать полный путь к файлу |
|||
|
||||
sergex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.2.2008 Репутация: нет Всего: нет |
Спасибо всем кто написал данный топик, который мне очень помог, благодаря ему разобрался в азах работы с sqlite . В ходе работы возник вопрос: есть БД в которой 2 таблицы table1 и table2, опишите в двух словах как можно осуществить поиск по базе в общем и для каждой таблицы в частности и как можно обработать результать.
Это сообщение отредактировал(а) sergex - 20.2.2008, 22:35 |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
||||
|
||||
sergex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.2.2008 Репутация: нет Всего: нет |
В ссылке я разглядел режим создания, добавления и удаления забисей в БД
Интересует описание функции которая возвращала бы список всех таблиц в базе, а так функции которая бы искала определенное значение в определенном столбце определенной таблицы и возвращала строку результата из этой таблийцы, предполагаю что это можно сделать через функцию sqlite3_exec но какие передавать при этом параметры не соображу. |
|||
|
||||
sergejzr |
|
||||||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Вообще всё, что может API описано в примере. Остально делается с помощью SQL
Это возвратит названия всех таблиц в базе.
Это? |
||||||||
|
|||||||||
sergex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.2.2008 Репутация: нет Всего: нет |
Получается описание функции которая возвращала бы список всех таблиц в базе выглядит так?
а результат находится в функции callback? Тогда вопрос - результат запроса SELECT * FROM sqlite_master WHERE type = "table" представляет собой массив строк находящийся в массиве rows функции callback ? |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
да. Можно распечатать и посмотреть. Но мой совет не пользоваться callback, а троицей prepare/step/finalize это удобнее и более контролируемо. В примере это показано после коммента "//произведём SELECT способом 2:" |
|||
|
||||
sergex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 20.2.2008 Репутация: нет Всего: нет |
Спасибо за быстрый и содержательный ответ.
![]() Ушел учить синтаксис SQL запросов |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 1 Всего: 50 |
A SQLite с блобами дружит?
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
SQLite дружит исключительно со строками. Если желаете хранить БЛОБ, надо будет сперва байты кодировать например в base64 и при получении раскодировать обратно (можно конечно свой обработчик подвесить и облегчит часть процессов). |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 1 Всего: 50 |
![]() Добавлено через 57 секунд Есть ли готовые классы для работы с SQLite? |
|||
|
||||
SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 3 Всего: 23 |
Это пойдёт?
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 1 Всего: 50 |
Сейчас гляну. |
|||
|
||||
needDrivers |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 12.5.2009 Репутация: нет Всего: нет |
Кто-нибудь пробовал пересобрать amalgamation с опцией SQLITE_ENABLE_UPDATE_DELETE_LIMIT?
Я не смог найти информации от том, как они собирают всё в один большой файл? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C++: Базы данных" | |
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |