Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQLite и С++, Давайте поработаем здесь 
:(
    Опции темы
Vatel
Дата 11.8.2005, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 6.8.2005

Репутация: нет
Всего: нет



Добрый день, пытался более подробно разобраться с
примерчиком от 7.8.2005, 13:34 и наткнулся на такие строки

Код

typedef struct sqlite3 sqlite3;


я так понял это описание ползовательского типа данных, но оно какоето непонятное,
вот если бы я увидел нечто вроде
Код

typedef struct
    {
    ...
    описание структуры;
    и т.д.;
    ...
    } sqlite3;


то до меня бы дошло, а вот

Код

typedef struct sqlite3 sqlite3;

ни как в голове не укладывается.
Обьясните плиз чего это значит то (или хотябы ссылку на доки дайте).

Это сообщение отредактировал(а) Vatel - 11.8.2005, 13:17
PM MAIL   Вверх
sergejzr
Дата 11.8.2005, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Непрозрачная структура. Просто обьявление, что такой тип данных где то в программе определён.
Так как поля этой структуры не используются в нашем коде, их и не нужно определять.

Мы пользуемся функциями возвращающими этот указатель и передаём его опять же в функции. Самим указателем мы не пользуемся.
PS:
это как обьявление:
Код

class MyClass;



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
patison
Дата 31.1.2007, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Здравствуйте!
Скачал я архив с хидерами и .c-файлами. Но подключать всё это к проекту, по некоторым причинам, не очень удобно. Если я правильно понял, я могу не подключать к своему проекту все .h и .c, а могу использовать dll, из предложенного архива. 
Объясните пожалуйста, как мне прилинковать функции из длл к проекту. (надеюсь, прально выразился smile)
Спасибо за помощь
PM MAIL   Вверх
sergejzr
Дата 31.1.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Выше находится пример кода с описанием и комментами. Необходимо будет только в проекте только sqlite.h. ДЛЛ динамически подгружается во время работы программы.
Кстати не уверен точно, но вроде бы в этой теме архив цеплял с работающим примером даже.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
patison
Дата 1.2.2007, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Спасибо, Сергей! Я действительно не обратил внимание на приведенный выше пример. Теперь всё работает! smile
PM MAIL   Вверх
wotker
Дата 17.2.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 
PM MAIL ICQ   Вверх
sergejzr
Дата 17.2.2008, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Цитата(wotker @  17.2.2008,  15:51 Найти цитируемый пост)
И как увидеть список  всех баз данных на компьютере?

Вы должны понимать, что база данных SQLite - обыкновенный файл. Поэтому список всех баз на компьтере можно получить толъко проверив последовательно каждый файл на диске на наличие формата SQLite. 

Цитата(wotker @  17.2.2008,  15:51 Найти цитируемый пост)
mozStorage не виден. rc равен нулю. тоесть создается новая db. 

Надо указывать полный путь к файлу


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergex
Дата 20.2.2008, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 20.2.2008

Репутация: нет
Всего: нет



Спасибо всем кто написал данный топик, который  мне очень помог,  благодаря ему разобрался в азах работы с sqlite . В ходе работы возник  вопрос: есть БД в которой 2 таблицы table1 и table2, опишите в двух словах как можно осуществить поиск по базе в общем и для каждой таблицы в частности и как можно обработать результать.

Это сообщение отредактировал(а) sergex - 20.2.2008, 22:35
PM MAIL   Вверх
sergejzr
Дата 21.2.2008, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Что конкретно непонятно по ссылке?




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergex
Дата 21.2.2008, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 20.2.2008

Репутация: нет
Всего: нет



В ссылке я разглядел режим создания, добавления и удаления забисей в БД
Интересует описание функции которая возвращала бы список всех таблиц в базе, а так функции которая бы искала определенное значение в определенном столбце определенной таблицы и возвращала строку результата из этой таблийцы,  предполагаю что это можно сделать через функцию sqlite3_exec но какие передавать при этом параметры не соображу.
PM MAIL   Вверх
sergejzr
Дата 21.2.2008, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Цитата(sergex @  21.2.2008,  12:30 Найти цитируемый пост)
Интересует описание функции которая возвращала бы список всех таблиц в базе

Вообще всё, что может API описано в примере. Остально делается с помощью SQL
Код

SELECT * FROM sqlite_master WHERE type = "table"


Это возвратит названия всех таблиц в базе.


Цитата(sergex @  21.2.2008,  12:30 Найти цитируемый пост)
а так функции которая бы искала определенное значение в определенном столбце определенной таблицы и возвращала строку результата из этой таблийцы,


Код

SELECT * FROM ИМЯ_ТАБЛИЦЫ WHERE ОПРЕДЕЛЁННЫЙ_СТОЛБЕЦ=ИСКОМОЕ_ЗНАЧЕНИЕ


Это?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergex
Дата 21.2.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 20.2.2008

Репутация: нет
Всего: нет



Получается описание функции которая возвращала бы список всех таблиц в базе выглядит так?
Код

sqlite3_exec(db, "SELECT * FROM sqlite_master WHERE type = "table";", callback, 0, &zErrMsg);


а результат находится в функции callback?
 
Тогда вопрос - результат запроса SELECT * FROM sqlite_master WHERE type = "table" представляет собой массив строк находящийся в массиве rows функции callback ? 


PM MAIL   Вверх
sergejzr
Дата 21.2.2008, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 2
Всего: 360



Цитата(sergex @  21.2.2008,  14:04 Найти цитируемый пост)
Тогда вопрос - результат запроса SELECT * FROM sqlite_master WHERE type = "table" представляет собой массив строк находящийся в массиве rows функции callback ? 

да. Можно распечатать и посмотреть.
Но мой совет не пользоваться callback, а троицей prepare/step/finalize это удобнее и более контролируемо. В примере это показано после коммента "//произведём SELECT способом 2:"




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergex
Дата 21.2.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 20.2.2008

Репутация: нет
Всего: нет



Спасибо за быстрый и содержательный ответ. smile 
Ушел учить синтаксис SQL запросов
PM MAIL   Вверх
Alca
Дата 17.4.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



A SQLite с блобами дружит?


--------------------
PM WWW ICQ Skype Jabber   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0984 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.