Всем доброго времени суток!
Собираюсь написать небольшую софтятину, для нее необходима база данных: несколько таблиц, в таблицах по несколько полей (байтовые, текстовые, целочисленные и т.п.).
Сейчас хочу выбрать - в на основе какой BD реализовываться,...
Из ограничений: хранить дынные необходимо в файловом виде (обдумывал формат dbf (xBase)), а так же необходима кросплатформинность: Linux, Windows., под вторым вполне возможно использовать cygwin....
MySQL рассматривать бы не хотелось, т.к. для нее необходим сервер...
За ранее всем спасибо!
c++ linux - Базы данных !?
Модератор: Модераторы разделов
-
sciko
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: c++ linux - Базы данных !?
Т.к. ТС упомянул MySQL предлагать Berkeley DB не буду (не реляционная), а предложу сразу SQLite.
-
Ism
- Сообщения: 1261
- Статус: Никто, по сути быдло
Re: c++ linux - Базы данных !?
firebird
-
eddy
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
-
sciko
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: c++ linux - Базы данных !?
eddy, было. Ещё вариант?
-
joub
- Сообщения: 170
- ОС: Debian
-
sciko
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: c++ linux - Базы данных !?
Срочно телепатов в тред! Моя libastral.so поломалась, ещё на роутерах.
-
eddy
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
Re: c++ linux - Базы данных !?
libsqlite3
Малюсенький пример кода (веб-авторизация через https):
Код: Выделить всё
char *SQLexec(char *q_str){
sqlite3 *db;
char *zErrMsg = NULL, *ret = NULL;
int rc = sqlite3_open("user-pass", &db);
if(rc){ sqlite3_close(db); die(NO_DB);}
if(SQLbuf){ free(SQLbuf); SQLbuf = NULL;}
rc = sqlite3_exec(db, q_str, callback, NULL, &zErrMsg);
if(rc){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
}
else if(SQLbuf)
ret = strdup(SQLbuf);
sqlite3_close(db);
return ret;
}
char *get_passwd(char *login, int *level){
char *q_str = (char*)calloc(512, 1), *ret=NULL, *tmp;
snprintf(q_str, 512, "select pass from users where login=\"%s\";", login);
ret = SQLexec(q_str);
snprintf(q_str, 512, "select level from users where login=\"%s\";", login);
if( !(tmp = SQLexec(q_str)) ) *level = 0;
else *level = atoi(tmp);
free(q_str);
free(tmp);
return ret;
}RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze