|
|
|
| Не получается подключить Sqllite к С++. Среда разработки wxDev C++ под Windows.
С сайта http://www.sqlite.org/ скачал файлы sqlite3.def и sqlite3.dll , но не знаю, как их подключить к программе.
Попробовал так:
#include <cstdlib>
#include <iostream>
#pragma comment(lib,"sqlite3.dll");
using namespace std;
int main(int argc, char *argv[])
{
cout << "test \n";
system("PAUSE");
return EXIT_SUCCESS;
}
|
Но, что делать с файлом sqlite3.def , не знаю. Где то, прочитал что его нужно преобразовать в файл sqlite3.lib, а потом, подключить, но как, не понимаю.
Так же скачал программу sqlite manager, создал там, таблицу users с полями id,login,password. Поместил файл таблицу в ту же директорию где лежит .exe файл проекта. Как прочитать данные из этой таблицы (файл users.sqllite)?
Если возможно, пример простого скрипта по подключению .dll библиотеки и извлечению допустим одной записи из этой таблицы. | |
|
|
|
|
|
|
|
для: Quies
(08.03.2009 в 17:21)
| | Тем, не менее. Проблема до сих пор актуальна. Так и не удалось, найти, как подключить sqlite к с++ .
Среда разработки wxDev С++ , но думаю большой разницы не будет, если есть аналог подключения скажем под Visual С++ .
Как я уже писал, с офф. сайта есть на скачку 2 файла sqlite3.def и sqlite3.dll . Задача тем самым сводиться к подключению любой dll , с def файлом , но это мне тоже не удалось.
Пробывал как описано на этой странице. http://www.cyberforum.ru/cpp/thread22030.html
Но тоже не работает, не запускает функции из dll-ки | |
|
|
|
|
автор: cod (02.06.2010 в 18:44) |
|
|
для: Quies
(28.02.2010 в 16:55)
| | Скачивай amalgamation packages, первый в разделе Download и подключай sqlite3.c & sqlite3.h в проект. все будет работать. только если у тебя с++ проект, выключи использование precompiled headers для sqlite3.c файла | |
|
|
|
|
|
|
|
для: cod
(02.06.2010 в 18:44)
| | Получилось!
Скачиваем с сайта http://www.sqlite.org/download.htmlсамый верхний файл sqlite-amalgamation-3071100.zip(1.30 MiB) .This ZIP archive contains all C source code for SQLite 3.7.11 combined into a single source file. К моменту прочтения Вами этого сообщения версия файла может быть другой. Файлы разжимаете в директорию Вашего проекта (там где находятся Ваши .cpp и .h файлы). Затем, в Visual Studio 2010 после создания проекта MFC application (не console application), добавляем в Ваш .cpp файл #include "sqlite3.h" .
.В Solution Explorer в Header Files добавляем файл sqlite3.h. А в Source Files добавляем sqlite3.c файл.
В Source Files правой кнопкой выбираем property (свойствах) на файле sqlite3.c , и во вкладке C/C++ в- /Precompiled Headers справа в- Precompiled Header выбираем Not Using Precompiled Headers.
В меню программы Visual Studio нажимаем на Project , в открывшейся лесенке в самом низу жмём на Properties Вашего проекта, откроется окно и в самом верху в Configuration выбрать All Configurations. На закладке General строка Use of MFC должна быть включена как Shared DLL, Use of ATL как Not Using ATL, Common Language Runtime как No CLR. Во вкладке C/C++ --> Code Generation --> Runtime Library установить в Multi-Threaded DLL (/MD).
А вот этот код можете смело добавить в Ваш проект:
// This is the callback function to display the select data in the table
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i=0; i<argc; i++)
{
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int _tmain(int argc, char* argv[])
{
sqlite3 *db; // sqlite3 db struct
char *zErrMsg = 0;
int rc;
// Open the test.db file
rc = sqlite3_open("test.db", &db);
if( rc ){
// failed
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
}
else
{
// success
fprintf(stderr, "Open database successfully\n\n");
}
// ..
// .. after open database
// ..
const char *pSQL[6];
// Create a new myTable in database
pSQL[0] = "create table myTable (FirstName varchar(30), LastName varchar(30), Age smallint)";
// Insert first data item into myTable
pSQL[1] = "insert into myTable (FirstName, LastName, Age) values ('Woody', 'Alan', 45)";
// Insert second data item into myTable
pSQL[2] = "insert into myTable (FirstName, LastName, Age) values ('Micheal', 'Bay', 38)";
// Select all data in myTable
pSQL[3] = "select * from myTable";
// Remove all data in myTable
pSQL[4] = "delete from myTable";
// Drop the table from database
pSQL[5] = "drop table myTable";
// execute all the sql statement
for(int i = 0; i < 4; i++)
{
rc = sqlite3_exec(db, pSQL[i], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
break;
}
}
// ..
// .. before close database
// ..
// Open the test.db file
sqlite3_close(db);
getchar();
return 0;
}
|
| |
|
|
|
|