Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQLite и C++ Для Чайников, помогите плиз разобраться! 
:(
    Опции темы
NikGK
Дата 31.5.2010, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите плиз разобраться "младенцу в программировании":  smile 

ни разу не работал с ДБ, да и с С++ пока на Вы... 

подскажите где скачать SQLite, а самое главное : как собрать из исходников( если потребуется), или как там ещё моно с SQLite работать.., и как обращатся к ней из проекта???

(а то уже вторую неделю никак не могу разобраться smile )

P.S. проект делаю на VS2008 на C++ 
Заранее благодарю от всего сердца!!!
PM MAIL   Вверх
borisbn
Дата 31.5.2010, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Качаешь исходник отсюда,
подключаешь его в свой проект, включаешь в свой исходник h-ник sqlite'а, и вызываешь нужные функции.
А здесь можно почитать про SQLite.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Alca
Дата 31.5.2010, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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





--------------------
PM WWW ICQ Skype Jabber   Вверх
mrbrooks
Дата 31.5.2010, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


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

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



NikGK, если исходить из 
Цитата(NikGK @  31.5.2010,  11:03 Найти цитируемый пост)
Помогите плиз разобраться "младенцу в программировании"

то не будет ли проще воспользоваться SQLite ODBC Driver или SQLite OLE DB Provider?
PM MAIL   Вверх
Cheloveck
Дата 31.5.2010, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Вот тут (svn checkout http://sqlite3pp.googlecode.com/svn/trunk/ sqlite3pp-read-only) есть враппер для C++, использующий boost для ухода от колбеков, которые есть не C++ way.
Использовать очень легко, н/р
Код

    try
    {
        ::SetCurrentDirectory(m_cur_dir);
        sqlite3pp::database db(m_db_filename);
        sqlite3pp::command c(db, "CREATE TABLE users ("
            "name TEXT  PRIMARY KEY NOT NULL, password TEXT  NOT NULL);");
        c.execute();
    }
    catch(sqlite3pp::database_error & e)
    {
    }


Это сообщение отредактировал(а) Cheloveck - 31.5.2010, 14:42


--------------------
user posted image
PM Jabber   Вверх
NikGK
Дата 31.5.2010, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



извените, я правельно понял, что ничего компилить не нужно?!

borisbn 
там по ссылке 5 файлов (2 С, 2H и EDF):

я правельно понимаю что чтобы работать с Sqlite нужно  просто включить в свой проект sqlite3.h (типо : #include "sqlite3.h")
         и после в своих классах обращаться к уже имеющимся функциям SQLite-а???

И ещё такой вопрос: для чего нужен Sqlite.dll на офф сайте его тоже говорят скачать...

Ещё раз прошу меня извинить, я действительно только второй месяц изучаю программирование... smile 
PM MAIL   Вверх
Cheloveck
Дата 31.5.2010, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



NikGK, все *.c файлы добавляешь в проект. dll в таком случае не нужна. Если будешь использовать чистые исходники SQLite, то там не будет никаких классов, классы будут, если будешь использовать враппер. Но для враппера надо скомпилировать будет boost, это для новичка посложнее задача.


--------------------
user posted image
PM Jabber   Вверх
NikGK
Дата 1.6.2010, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



еммм... тут вот такая проблемка:
у меня есть набор С++ библиотек "OGRE"(движок рендеринга), с ним более менее разобрался,
но вот он написан на С++ и там всё на классах...,
при таком варианте как прикруть SQLite?

С с С++ как взаимодействуют? возможно подключить sqlite.h как включаемый фаил и обращаться к его функциям из классов OGRE???

или как ето можно вообще сделать???

Ребят, если есть возможность, можете обьяснить как совсем полному чайнику??? smile 
PM MAIL   Вверх
mrbrooks
Дата 1.6.2010, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


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

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



мда. второй месяц. исходники sqlite. теперь уже ogre. 

автор, учи матчасть. не с того начинаешь.
PM MAIL   Вверх
NikGK
Дата 1.6.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



учу учу... просто OGRE както легко пошёл...  smile   много удачных примеров да и инфы...
а вот с sqlite сложнее...
PM MAIL   Вверх
borisbn
Дата 1.6.2010, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(NikGK @  1.6.2010,  12:58 Найти цитируемый пост)
С с С++ как взаимодействуют

Из исходников C++ просто вызываются функции С.
Файл my_class.cpp
Код

#include "sqlite3.h"

bool MyClass::connect( const char * dbFileName )
{
    if ( NULL == dbFileName )
    {
        return false;
    }
    if ( m_db )
    {
        sqlite3_close( m_db );
        m_db = NULL;
    }
    int res = sqlite3_open( dbFileName, &m_db );
    if ( SQLITE_OK != res )
    {
        return false;
    }
    return true;
}


}


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
NikGK
Дата 2.6.2010, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну тоесть как я говорил:
 
Цитата

я правельно понимаю что чтобы работать с Sqlite нужно  просто включить в свой проект sqlite3.h (типо : #include "sqlite3.h")
         и после в своих классах обращаться к уже имеющимся функциям SQLite-а???


???

а основные фенкции SQLite-a, на сколько я понимаю, ето: 


sqlite3_open()
sqlite3_exec()
sqlite3_close()

тогда ещё вопрос: подскажите плиз, как обращаться к определённой константе лежащей в базе (допустим там уже загружен какой-небудь .png)
(если возможно, можно пример с классами smile заранее благодарю! smile )


PM MAIL   Вверх
borisbn
Дата 2.6.2010, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(NikGK @  2.6.2010,  09:20 Найти цитируемый пост)
просто включить в свой проект sqlite3.h

В проект включаются исходники (sqlite3.c), а h-ники включаются в исходники ( но это просто, по терминологии smile )
По сути. В базе лежат не константы, а записи. Каждая запись состоит из набора полей. У каждого поля есть имя и тип. Для картинки, скорее всего, был выбран тип BLOB, и доставать его из базы нужно примерно так:
Код

sqlite3_stmt * stmt = NULL;
sqlite3_prepare( m_db, "select png_data from table_name where id=0", -1, &stmt, NULL );
sqlite3_step( stmt )
const char *pngBytes = (const char *)sqlite3_column_blob( stmt, 0 );
unsigned int pngSize = sqlite3_column_bytes( stmt, 0 );




--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
NikGK
Дата 2.6.2010, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



во! smile  спасибо огромное!!! вроде бы разобрался! smile 
PM MAIL   Вверх
0123456
Дата 7.8.2010, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



База Врапперов для SQLITE3 SQLITE wrappers
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

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

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


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

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


 




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


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

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