файловая база для программы коллекциии
как пользоваться SQL базами знаю, но они в данном случае противопоказаны, так что просьба по сути - быструю и не сложную файловую базу данных с возможностью использования из чистого C++ без MFC и прочего
П.С. буду очень признателен за ответ так как на 2 предыдущих моих вопроса не нашлось ни ответа ни рекомендаций
как пользоваться SQL базами знаю, но они в данном случае противопоказаны, так что просьба по сути - быструю и не сложную файловую базу данных с возможностью использования из чистого C++ без MFC и прочего
П.С. буду очень признателен за ответ так как на 2 предыдущих моих вопроса не нашлось ни ответа ни рекомендаций
с любой БД можно работать из чистого С++ - при желании можно и в машинных кодах работать - не зря в поговорке говориться про того, кого заставь Богу молиться - так он и лоб разобъет :)
Для того что бы ответить на ваш вопрос - нужна более четко поставленная задача - каким требованиям должна отвечать база, какие операции планируеться, чем именно "противопоказанно" использование стандартных решений? Почему нельзя использовать emmbeded-сервер?
XML? MySQL? SQLLite? Без этого любая рекомендация по сути бессмыслена - я уже устал повторять - на форуме в большинстве своем нет телепатов - и никто не должен догадываться о ваших проблемах.
В конце концов, можно разработать свой формат хранения данных и реализовать необходимый функционал - если вы считаете это оправданным и понимаете зачем это вам нужно - то почему бы и нет. Лишь бы в радость.
З.Ы. Вопросы типа "кто нибудь сталкивался, помогите..." вполне закономерно игнорируються. А в конечном итоге - приводят к выдаче нарушения, за игнорирование правил конкретного раздела. Внимательно и вдумчиво читайте мою подпись.
сори, согласен... ;)
и спасибо что данный вопрос не обошли вниманием. :)
задача такого плана
создается небольшая утилита в которой будут коллекционироваться кусочки кода разных программ, в основном программа будет использоваться с флешки и на разных компах - посему необходимо использовать файловые базы без необходимости установки SQL сервера
и спасибо что данный вопрос не обошли вниманием. :)
задача такого плана
создается небольшая утилита в которой будут коллекционироваться кусочки кода разных программ, в основном программа будет использоваться с флешки и на разных компах - посему необходимо использовать файловые базы без необходимости установки SQL сервера
я думаю SQLite, либо, если не нужен SQL интерфейс, BerkleyDB
Казань брал, астрахань брал....
SQLite не брал... :)
а SQLite разве не требует установки серверной части на машине где софт с ней будет работать?
работал с MSSQL, PGSQL,MySQL.
если можно поподробнее как использовать SQLite из чистого С++ без необходимости установки на машине серверной части...
ключевая фраза:
насчет "чистого С++" - тут никак. как минимум - с нужной библиотекой нужно линковать :)
ключевая фраза:
насчет "чистого С++" - тут никак. как минимум - с нужной библиотекой нужно линковать :)
да, спасибо!!!!!
по описанию это именно то что я искал
кстати как у SQLite с лицензией???
можно ее бесплатно использовать в коммерческих приложениях?
если у кого есть опыт - буду рад любой помощи.
#include <sqlite3.h>
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName, argv ? argv : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int rc;
if( argc!=3 ){
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
//exit(1);
}
rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
//exit(1);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
}
на выходе ошибки
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_exec referenced in function _main
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_close referenced in function _main
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_errmsg referenced in function _main
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_open referenced in function _main
Output\Visual C++ 2005\sqlitepr.exe : fatal error LNK1120: 5 unresolved externals
на выходе ошибки
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_exec referenced in function _main
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_close referenced in function _main
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_errmsg referenced in function _main
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_open referenced in function _main
Output\Visual C++ 2005\sqlitepr.exe : fatal error LNK1120: 5 unresolved externals
Очень похоже, что необходимо подключить в проект библиотеку, где содержатся перечисленные функции.
если у кого есть опыт - буду рад любой помощи.
...
на выходе ошибки
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_exec referenced in function _main
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_close referenced in function _main
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_errmsg referenced in function _main
C:\Dev-Cpp\SQLitepp\main.obj [Error LNK2019] unresolved external symbol _sqlite3_open referenced in function _main
Output\Visual C++ 2005\sqlitepr.exe : fatal error LNK1120: 5 unresolved externals
Используйте либо динамическую загрузку библиотеки - для этого вам необходимо объявить и инициализировать указатели на необходимые вам функции (задайте поиск по форуму "загрузить dll" и по моим сообщениям например - и вы найдете как это сделать)- или же указать вашему ликовщику библиотеку (ее имя совпадает с названием длл только расширение .lib). Какие преимущества и недостатки - того и другого читайте в инете и на форуме. как сделать это для вашего компилятора - смотрите документацию на него.